最近、いろいろツクールMV関連のツールを買ってきて遊んでみながらレビュー的なものをしてきたが、実際に制作のほうで生かす機会がないまま一月が経過してしまいそう。
と言う訳で、前に考えたっきり漬けてあった
『ステ振りゲーム』
のほうの基礎を作っていきながら、各種拡張ツールを使ってどのくらい見栄えが良くなるのか試していきたいと思う。
前回までに試したツールは、
SAKAN-タイルセットビルダーー
と
MADO -WINDOW BUILDER-
の二つ。
今回はツクールMVのほうのゲーム制作を始めて行って、適当なところで両者を投入、ビジュアル面で手助けしてもらおうという寸法。
二つのツールの内容、使い勝手に関してはこちらで解説しているので割愛。
【RPGツクールMV】MADO -WINDOW BUILDER-を試してみた
【RPGツクールMV】SAKAN タイルセットビルダーを使ってみた
また、最近動画編集ソフトを買った流れで、動画を撮影するのがマイブーム。
と言う理由で今回記事を作るにあたって動画を撮影しながら、作っていって途中途中をスクショで撮影することによって動画の素材と記事用の資料を同時に作成できるという頭の悪い制作技法を思いついて試してみた。
結果として言うと時間ばっかり無駄にかかって編集する気をなくす長さのムービーと、とても使い切れない膨大な量のスクショが生まれてしまうという悲惨な状況になってしまったが、
せっかくなので選別したものを適時貼り付けていきたい。
閑話休題。
今回作るゲームに関して
おそらく内容としては装飾のほうがメインとなるので、あまり触れる必要性もないと思うが、一応制作の大半はこちらにつぎ込んでいるので、解説。
タイトル的なものは考えていないが、
完全放置で終わるステ振りがメインテーマのゲームとなる予定。
ジャンル的にはTRPGのようなイベントに対して各種ステータスを参照して、成功判定を行うといった感じのものをイメージ。
最初に姿形とパラメータ割り振りだけ決めて送りだす。
その後、適当に冒険とかして、NPC特有の変な行動とか奇跡とかを起こす流れと結果を見て楽しむようなタイプ。
今回の範囲としては、
ツクールMVのまっさらな状態から、
基本設定、スクリプトの設定。
初期ステータスの決定。
までの範囲を作っていきたいと思う。
まとめて書いてしまうと、すっごく薄く見えるが、
ステータスに関しては従来のツクールの基本仕様である、
初期パラメータは固定。
レベルアップで定量ずつ上昇。
という部分を完全に無視して出来る限り計算部分に関してはスクリプトに頼らないという方針で進めたのでこのような牛歩になってしまった。
大変申し訳ない。
ともあれ、結論から言っておくとゲームとしてはほとんど完成していない状態で終わるのでそれだけはご了承いただきたい。
初期設定
早速まっさらなツクールMVをセッティングして制作開始。
まず最初に見ていきたいのがエディタの『用語』内にある能力値表記の部分。
ゲーム内ステータスを戦闘以外のイベントなどに用いるには、
既存の物をリネームして使用する。
変数で一から作ってしまう。
の二つの方法がある。
どちらを選んでも結局条件分岐などの判定を行う際には、変数に入れ込む形をとるので、既存の物を流用することは必須ではないのだが、後者をメインにとらえて作ろうとするとどうしてもメニュー画面のほうをスクリプトを用いて修正しなければならない場面が出る。
極力メニュー画面も使わない方向性ではあるものの、製作中だとステータスを確認したい場面もあるし、後々MADOのスクリプトを入れることも考えると、ウィンドウ改変はなるべく避けたいところ、と言う訳で今回は既存の物を使っていきたい。
などと何とかスクリプトから距離を置こうと自分をごまかしながら、能力値の名前のほうを書き換え。
ざっくりイメージ程度なので後々変わるかもしれないが、
とりあえずこれだけパラメータがあれば何とかなるんでないでしょうか。
ステータス振りイベント
後々オープニングイベントに組み込むとしてメインとなるステ振りのイベントを作成開始。
パラメーターに関しては
主人公固有の初期パラメーターに
割り振りポイントを決定。
ポイント上限まで各ステータスに割り振り。
という流れで決定していきたい。
ステ振り系と言えば、
上げたいステータスを指定
左右でゲージ的なものを割り振り
全て割り振ったら決定。
というものが一般的だとは思うが、こちらはいい案が思いつかなかったので保留。
ループ内に左右キーの条件分岐を入れることで出来そうな気もするが、気づいたのがだいぶ後だったので後の祭り。
ちなみにこの状態でテストしてみるとこんな感じ。
謎の暗い空間に意味不明な六択が現れる。
選択しても中身無しのループなので当然うんともすんとも言わないままひたすら選択肢が表示され続ける。
新感覚ホラーっぽい。
各選択肢の中身を入れ込んでいく。
各パラメータを選択すると対応した変数に+1していって、選択肢をキャンセルした際にそれら変数をまとめて現在のパラメータに追加する、という形。
現状の変数はこんな感じ。
1~6が各ステータスのプラス分を一時的に保存しておく個所。
7~12が現在のステータスを入れる変数。
こちらはステータスの表示などを行う際に使う。
能力値の増減を行った後、改めて現在の能力値を変数のほうに入れて、テキストメッセージでパラメータ振りの結果表示。
テキストの色替えとかをしているせいで謎に細かいテキストになっていますが、中身はステータス名の後に二つの変数を表示しているだけです。
ここでは本題とはずれてしまうが、ツクールMVの選択肢の使用に対しての対策を少し。
ツクールMVの選択肢では表示する際に
選択肢の文章
背景
表示位置
カーソルの初期位置
キャンセルが押された時の分岐先(既存のどれか、独自、禁止)
を設定することが出来るのだが、基本的にループには対応していない。
毎回選択肢のたびに上記設定が適応されるので、
現状のままだと選択肢のうちどれを選んでもループを挟んで再び選択肢が表示されると、一番上の選択肢である筋力にカーソルが合わさってしまう。
マウスなら問題ないが、ゲームパットなどの場合、同じ選択肢を連続で選びたい場合に不便なところがある。
今回の場合では、運のパラメータに全振りしたいという時には、
カーソルを運に合わせる
決定キー
自動で初期位置に戻る
という流れを連続で何回も行わないとならないため、非常に面倒。
残念ながら設定などではどうしようもないので、今回は物理技で乗り越えることにした。
まず各選択肢の分岐後の頭にラベルを設定。
各選択肢の後にもう一度同じ選択肢(二回目)をコピーし、選択肢の初期位置だけ各選択肢に合わせて変更する。
選択肢(二回目)の分岐は選択肢(一回目)の分岐へのラベルジャンプで埋めておく。
という構造にしておくことで、基本的には各選択肢が個別に初期位置設定されている選択肢(二回目)を使いながら処理は一回目のほうに集中して書ける、といった流れ。
見た目が非常に長くて見栄えもあれだけど、今の自分の技術力だとこれが限界。
プラグイン導入
と、ここまでは何とかスクリプト系を避けてイベントだけで進めるという流れでしたが、ここでプラグインの力を借りたい。
今回使わせてもらうのは
『動的文字列ピクチャ生成プラグイン(DTextPicture.js)』
テキストをピクチャ扱いとして画面表示できるようになるという、本家にありそうでなかった便利機能を追加するプラグイン。
シンプルな機能で使いやすく、変数や数字も普通に入れることが出来るので方々で愛用中。
これがないと画面右上に簡単な文字を表示するのにも、一度テキストで入力した画面をスクショして、みたいな手間がかかるので本当にありがたいプラグインです。
使い方はプラグインコマンドで特定の文字列を入れて、その後テキストを入れるだけ。
これだけで表示待ち状態になるので、表示したいタイミングでピクチャの表示を行う。
実際に動かしてみたのがこちら。
選択肢の始めと各選択後に表示されるように配置したので、各能力値にステ振りするたびに、赤で表示されている+分の数値がリアルタイムで上がっていくのが目視で確認できる。
既存の物がキャンセル後のテキスト表示でしか確認が出来ないのと比べるとだいぶわかりやすくなってくれたと思うのですが、どうでしょうか。
あくまでピクチャ扱いなので、位置調整も柔軟にできる。
テキスト、選択肢とも共有できるのでメニュー画面的なものを作ったりすることも可能。
割り振りポイント
プラグインの力も借りて表示周りはだいぶ良くなってきたので、再び内部のイベントのほうへ。
今回の肝ともいえる割り振りポイントの決定するイベントを作っていきたい。
とりあえず1~10の乱数を変数に格納。
割り振りポイントとして、この値まで各ステータスに割り振れるという仕組みを作っていきたい。
先ほど作った画面表示のほうにも割り振りポイントに関する情報を追加。
選択肢にも選ぶたびにポイントが-1される仕組みを追加し、
表示周りの準備は完了。
ポイントが0になった場合に割り振りを終了するか、やり直すかを選ぶ選択肢を追加。
はいの時にはキャンセルのほうのイベントに飛ぶ形でステ振り終了、いいえの場合は割り振られていた変数を初期化して、ボーナスポイントも元に戻して再び先頭のイベントに戻る。
現状コモンイベントにおいてあるこれを各選択肢のポイントマイナス処理の直後に配置していけばOK。
これで基本システム周りは完成。
画面的に寂しい物がありますが、初期に比べればだいぶらしくなってきたんではないでしょうか。
見た目のほうに入る前に、割り振りポイントのほうを少し改造。
現状一つの変数で判定を行っているものを三つに増やしてみた。
その合計値をまとめたうえで元の割り振りポイント変数に渡すという流れ。
まだ他には何も追加していないので見た目上は変化なし。
デバック機能を使って確認してみるとこんな感じ。
15:割り振りP1
16:割り振りP2
17:割り振りP3
の合計が
18:割り振りP合計
に格納されて、その数値を
13:割り振りポイント
に代入、割り振りイベントに生かされているという流れがつたわってくれれば幸いです。
早速表示周りを追加。
三つの数値を別にとってあるので、個別に表示。
その合計を教えてもらえるような流れに変更。
三つの文字が表示され、その合計値がステ振りポイントになる。
見た目だと伝わらないかとは思うけど、スロット的なものをイメージしてます。
より具体的に言ってしまうと某PSのRPGのアレ。
続けて三つ同時に表示されている状態から一つずつ、時間をおいて表示されるように変更。
この辺りは静止画のスクショで伝わりづらくて大変申し訳ない。
ビジュアル面としては数値ごとに色を変更、ついでに色ごとに異なるSEが流れるように設定してみた。
同じ数字が三つそろった時の感動が増す効果もあるものの、やはりこちらもスクショでは~。
文字色の指定を変数で行うことで一行で複数の色が表現できるように変更。
こういう〔〕の中に〔〕を重ねるのって頭こんがらがるけど動いた時にちょっと感動するね。
表示としてはこんな感じ。
順番に表示されること、SEが加わったことでだいぶスロット感が増してきた気がする。
このあたりでポイント割り振りをやり直せる機能を追加。
割り振りポイントを表示した後、選択肢を表示し、
もう一度を選ぶと先頭のラベルに飛んで再度抽選を行うという仕組み。
Wiz系で連打を繰り返す例のあれですな。
最近のだとステ振り自体なかったり、普通に遊ぶ分には無理に高い数値目指す必要がない調整されてたりが多いのが少し寂しい。
これで理想の数値になるまで繰り返しやり直しが可能に。
連打のし過ぎでいい値が出たのにもう一度を押してしまうのはお約束。
せっかくアレっぽく仕上がってきたので、同じ数値をそろえた時にもう一度抽選を行ってボーナスポイントがもらえる仕組みを取り入れてみた。
バランス的にはポイントが爆発的に高くなってしまうので難しいところだけど、今回は特に考えずにGOしてしまった。
中身的には一度目の抽選後、条件分岐で先頭に戻って2回の抽選結果を抽選ポイントに足し合わせるという単純なもの。
特に制限はかけてないので、豪運な人であれば二回、三回、のフィーバーを繰り返してありえない数値をたたき出すことも可能、なはず。
フィーバー発生!
専用のちょっと豪華なSEが流れてもう一度抽選という流れ。
二回目の抽選がこちら。
一回目の4×3の12に
二回目の3,5,5の13が足された25になっている。
当然もう一度を押すと割り振りポイントが初期化されてしまうのでボーナスを何回もやり直すみたいなのは不可。
連打が問題になるかと思ったけど、数字表示の演出を決定キー押しっぱなしで高速化(MVのデフォルト機能)していると思ったより誤爆しない。
これはうれしい誤算。
割り振りポイントの乱数について
何回かフィーバーが起こるのを試してみたが、毎回4とか1とか同じ数字でしかそろってくれない乱数の偏り的なものを感じてたので、何かしてみることに。
1、最初のほうで固めて乱数を発生させていた処理を三か所に分散して、フレームを入れて時間をおいて処理させる。
初めに思い付いたのがこれ。
早い話が頭のほうでまとめて乱数を発生させているので、 偏ってしまうのではないかという素人考え。
結果的にはあまり効果なし。
相変わらず数字のそろい方には偏りみたいなものを感じるし、やっぱり定数間を置くだけだと効果が薄いのかも?
2、ランダムフレームをかませてみる。
という考えから入れてみたのがコレ。
そもそもの話MVの乱数に関しては中身をほとんど理解していないのでぶっちゃけここでやっていること全て無駄な可能性もあるのだけど一応説明。
既存の
ウェイト:40フレーム
乱数発生(1~5)
となっている部分を、
ランダムフレーム前(0~40)
乱数発生(1~5)
ランダムフレーム後(0~40)
に変更するといった感じ。
ランダムフレームは前後合わせて40になるように調整することで、ウェイト0~40のどこかで乱数を発生、という形に変更した。処理全体の時間は変更前と変わらないので、演出上では変化なし。
やっていることとしては遠回り感があるが、二回乱数を挟むことでより乱数っぽく数値が分散してくれるんではないかと期待するというもの。
ランダムフレームイベントの中身。
細かくしようと思えば1フレーム単位で作ることもできるがとりあえず様子見がてら四つのパターンを作成。
二つ目、三つ目の数字が表示される際にこれを活用することで、
乱数a、乱数b、乱数cの組み合わせだったものが、
乱数a、乱数bのどれか(b1、b2、b3、b4)、乱数cのどれか (c1、c2、c3、c4) から一つずつ選びだしていって組み合わせたものになるというのが理想形。
効果のほどは正直言って確かめようがないことなのであれだが、一応何かしら進めるたびには偏りのようなものが薄れているような感はあるので、これからもいろいろ試していきたい。
ウィンドウの装飾
さて、それではある意味本題である拡張ツールを用いた装飾のほうに入っていきたい。
今回はウィンドウ関連をMADOを利用して作っていくが、
通常のウィンドウ周りを変更するのに加えて割り振りポイントの決定、ステータス振りの際に表示される各パラメータを納めてくれる背景画像も一緒に作っていきたい。
本当はこの辺りはスクリプトを用いてウィンドウを生成していくのが本流のやり方なのだろうが誠に残念なことにそこまでの技術力は持ち合わせていないので、画像ファイルを別個に用意して対応することにした。
一応数少ない利点としてはコアスクリプトの更新に対してやや強い、くらいかな。
MADOを立ち上げる。
背景が透明な状態のロゴが表示されるのでツクールのエディタと組み合わせて、なんか演出的にカコイイ。
背景、フレーム、コーナーパーツを選んでいってウィンドウを作っていく。
会話、ステータス画面などそれぞれ別個に用意することもできるが、今回は統一してみた。
画像だと若干伝わりづらいけど、木目フレームに金属コーナーパーツをつけてファンタジー感をイメージ。
作ったウィンドウをMVに適応するにはウィンドウ画像を改変する方法と専用のプラグインを用いる二つの方法があるのだが、今回はコーナーパーツを生かす構成上プラグインのほうを利用。
MADOでウィンドウ画像を生成した際に自動的にJSフォルダに追加されているので、MVのほうで有効化すればOK。
ちなみにウィンドウ改変で作ってみるとこんな見た目。
画像を引き延ばして表示を行うので各種コーナーパーツを使おうとすると違和感のある見た目になってしまうので、細かい加工が必要になる。
プラグインのほうを使っていくと無事綺麗に表示してくれる。
こっちはこっちで問題がなくはないが対策に関しては前に触れたので省略。
制作したウィンドウを編集して枠画像を作ったので、それをピクチャ機能で表示していくことに。
とりあえず正方形で作ったものをピクチャ表示機能の引き延ばしを使って枠内に収まるように調整してみたい。
イベントのテストで表示してみるとこんな感じ。
小さい画像を横に引き伸ばしたので多少枠の太さがいびつになっているもののこれはこれで味があるのではないでしょうか。
ステータス振りのほうは画像をばらして組み立て、コーナーパーツを追加という方法で公式の枠っぽく仕立ててみた。
柔軟性はないものの、場所自体は移動させられるので、手間がかかることを除けばこういうのもありかと。
ウィンドウ周りに関してはこれで完成。
今後も何か必要な表示があったら今回作ったものを変形させていって対応していきたいと思う。
タイルセット演出
続いて、SAKAN-タイルセットビルダー-を使って演出面を強化していきたい。
とはいえ、まだマップ製作で背景を作るタイルセットを用意するには早いので、今回はSAKANの一機能であるアニメーション作成ツールをメインに使っていきたいと思う。
制作したタイルを画像に変換、ピクチャ機能を用いて各イベントでの装飾に生かすという流れ。
SAKANを起動する前にツクールMVのほうに空のタイルセット画像を準備する。
SAKANでは作ったタイルを自動でタイルセットにまとめてくれる出力方法もあるので必須ではないが、これを用意しておくと、自由に配置して保存できるようになるので何かと便利。
SAKANを起動。
こちらの内容に関しては過去の記事を参照ください。
改めて使える素材を見てみると遊んでみたいパーツが目白押しで、眺めているだけで時間が無為に流れていく。
とりあえず現状だと普通にパっと表示されている数字部分にアニメーションをつけてみることにした。
今画像を見ていて思ったが、数字部分をタイルで作ってみるのも面白そう。
余力があったら試してみたい。
ついでに枠を装飾するパーツを作ってみた。
機械系、内装系のものも面白そうだが、今回は森パーツからチョイス。
判定が進むにつれて実ったり咲き誇ったりするアニメーション演出を追加。
完成したタイルはMVのほうに作った空のタイルセットに張り付けて行って出力する。
実際このあと使う際には画像編集ソフトで小分けにしたりしているのでこのアニメーションをちゃんと活かせたことがないのが悲しい。
MV側のコモンイベントで表示演出を作成。
ツクールMVで同じIDの画像表示を繰り返し行うと、画像が明転を繰り返して見づらくなる時があるので、ID5とID6の画像として交互に表示するという技法を使ってみた。
割り振りポイント表示イベントのほうに表示を追加して準備完了。
早速テストプレイへ。
実際の流れを連続して貼り付けていきたい。
まずは何もない空間に小さな星が現れて、
大きくなると同時に魔法陣が表示、
最後にすっと消えることで、裏に表示されていた数字が表れるといった流れ。
演出分だけ数字が出るのが少し遅くなってしまったが、
その分リーチがかかった時のドキドキ感がアップ。
当たりの時に限って数値が1とか小さい値になるのはお約束。
最後に枠のほうに演出を取り付けて完成。
見栄え的にはまだまだ改善の余地があるものの、初期段階に比べればだいぶ良くなってきたんではないでしょうか。
手に入れた割り振りポイントを割り振っていってイベント完遂。
とはいってもゲーム全体としてはキャラメイクが終わったところという、始まってすらいない段階ですが。
今回は以上となります。
ゲームのシステムのほうはさておき、独自ウィンドウ、自作タイルを利用することでどれくらい鮮やかになるのか伝わってくれれば幸い。