忍者ブログ
windowsやブラウザ のゲーム作ったりとか。
アクションゲームツクールMV」©2018 KADOKAWA CORPORATION.
その名の通り、アクションゲームを作るツールで
ノンフィールドADVを作ってみるわけです、はい。

今回はメッセージログ機能を作ってみようかと。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

仕様を考えます。
・Lボタンで、ログ画面を表示しようと思います。
・とりあえず、1画面にテキスト5個分表示できるようにしたい。
・とりあえず、1ページ表示出来たらヨシとする。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

アクツクは、テキストを素材として管理しているので
以下の方法で、実装してみようと思います。

まず、テキストのタイトルにナンバーを振り分けておきます。
1番を表示する命令を出した時に、ついでに番号を控えておいて
つららららっと表示する感じかな。

今回は画面いっぱいに表示したとしても
4つくらいしか一画面に表示できませんね。
そこで、メッセージログだけフォントサイズを少し小さく
してみようと思います。

表示にフォントサイズの設定を変更する方法では
通常時のフォントサイズまで変わってしまうので

\S[-\V[30,フォントサイズ]]

この制御文字を使います。
フォントサイズという名前の変数を作り、通常は値を0にしておきます。
ログを表示する時だけ、2~4の値に変更して、小さく表示させるわけです。
ログを表示するとき以外は初期値でいいので、オブジェクトの変数を使います。
なお、30という数値は、オブジェクトIDです。
オブジェクト30番にフォントサイズという変数を作成して使用しているわけです。

これで、1画面に表示できる量が増えます。
今回は5個ぐらいにしておきます。
何ページ分ログを保存するか、という問題もありますが
まあ今回は1ページ分ということで。

ちなみに、プラスもマイナスもつけず
\S[\V[30,フォントサイズ]]
のように記述すると、指定したフォントサイズで表示されるので
小さくするだけでなく、大きくしたテキストも
別のイベントで流用したい時には良いかもしれません。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

テキスト番号を覚えておく変数を5個。
(複数ページを設ける場合は、ページ数を掛けた数必要)
ログを覚えるアクションを起動するための変数1個。
ログを表示するメニュー画面を1つ作成。

作ったメニュー画面にテキストの表示位置として
5つオブジェクトを配置するわけだけど・・・

それぞれのオブジェクトに変数を新規作成、リンクは自身のオブジェクトの変数で指定。
テキスト表示イベントを組み込んで5つコピれば、修正が少なくて済む。
何が大変って、テキスト表示とリンクする命令を貼りまくることだよね。
セリフが多いほど地獄を見る。
そんな気がします。(サンプルは2つしかないから楽勝)

表示命令を出すオブジェクトを作成。
5つのオブジェクトの変数をそれぞれ代入する係。

ゲーム上でテキストを呼び出したときに、ログを覚えるアクションを起動する変数に
テキストに割り振った番号を入力。

番号を受け取ると、それをログ番号に順番に放り込んでいくわけだけど
常に最新の状態にするには、番号を繰っていく必要がある。
だから、最新の番号を入れる前に、1個ずつ変数を繰っていきます。
4番の値を5番へ、3番の値を4番へ・・・
最後に1番に最新の番号を代入して終わり。

ログの数を多く設定したら
連打やスキップでテキストが高速で表示された場合
果たしてログの取得が間に合うのか?
ドキドキしちゃうね。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

ログ表示用のメニューに、テキストを呼び出すオブジェクトを
等間隔に5つ並べます。

ログ表示用メニューに置いたオブジェクトの変数は
同じ表示用メニューに配置されたオブジェクトからしかできないので注意。

後は、ログ表示中にセーブを呼べ出せないように
セーブを呼び出すオブジェクトにも細工を施す。

今回は1ページなので、決定でもログを閉じます。

完成。

まあ、こんな感じです。

システム自体は、難しくないのですが
テキスト呼び出しイベントの入力は大変そうですね・・・
場合によっては、複数のオブジェクトに分ける等が必要かも。

このシステムでメッセージログを導入するのは
テキストの入力が全部終わってからがよさそうです。

というわけで、今回のサンプルはこちら

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

さて次回は、メッセージ一時非表示メッセージスキップの2本立てでいってみましょうか。

拍手[1回]

PR
アクションゲームツクールMV」©2018 KADOKAWA CORPORATION.
その名の通り、アクションゲームを作るツールで
ノンフィールドADVを作ってみるわけです、はい。

今日のテーマは、オマケCG観覧システムということで。
仕様は、まあ・・・
・サムネイルがいくつか並んでて、選んで決定したら大きく表示される
・クリアしたらタイトルにCG観覧メニューが増える
・できれば全セーブデータ共有でフラグの立ったCGだけ見れる



こんにゃ感じですね。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

サムネイル(CG)選択画面は、メニューや選択肢を作るのと
同じ方法なので割愛。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

クリアしたら、タイトルにメニューを増やす件は
セーブメニューの回でも少しふれたけど
セーブスロットとは違う番号のスロットにクリアデータをセーブして
そのスロットにデータがあるなら、メニューを変更する感じですね。
これ以上の説明は不要と思われるので割愛。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

後は、フラグを複数のセーブデータで共有する方法です。
アクツクMVさんは、変数だけロードしたり、スイッチだけロードしたりできます。
ので、スイッチをゲームのイベントでは使わないことにして
変数だけでゲームを進行させるという割り切った方法で
スイッチの状態をすべてのセーブデータで共有したいと思います。

当プロジェクトでは
ゲームの進行を保存しているスロットが、1,2,3なので
0番を共有スロットとして扱うことにします。

タイトルで、0番が存在していたら、0番のスイッチをロードします。
クリアフラグがONになっていたら、オマケのメニューを解放します。

今回は、通常ロードした時に、スイッチの再読み込みはしてないけど
必要に応じて、スイッチをロードするのもいいかもですね。

ゲーム中、CG観覧が可になる変数に適切な数値を入れます。
任意の桁の数字を取得できる計算方法があるので
一つの変数にいくつかの情報を入れることができますが
素直に、1つの変数に1つの情報を入れておく方が
アクツク的には楽かなーと思います。

さて、ひとひねりしなければならないのは、セーブ時です。
セーブする前に、一度0番のスイッチをロードします。
そして、CG観覧用の変数をすべてチェックして
観覧用スイッチをそれぞれONにします。
0番にセーブをしたのち、通常セーブを行います。

これで、複数セーブデータがあっても、スイッチの状態を常に最新にし
なおかつ共有できるというわけです。
やったね!

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

というわけで、今回のプロジェクトはこちら
ついでに、最新のセーブデータにカーソルが乗るようにしてみました。

この方法と、「Steel Sword Story」さんの
ロードファイル選択システムを合わせて使えば、もはや完璧なのでは?
「最初から」始める場合に、変数の初期化をお忘れなくー。

ちなみにセーブの時もやるなら、一旦他のスロットにセーブした方が良いね。
避難所にセーブ、選択したスロットの変数をロード、スロット確定時に
避難させたセーブデータから変数をロードして、後は同じ。

そして、宿題だったメッセージのあれ。
一文字ずつ表示で、決定押しても次のメッセージに行かず
目隠しが取れるだけにするように変更してみました。
選んだ方法、同じだったかな?
もっと簡単にできたよって方は教えてね!

短いメッセージはすぐ次の行へ行けるように
分割したアニメも用意すると、良いかもね。

後、入力待ちアイコンをスイッチで制御してたけど
変数に変更しました。
スイッチを使う方法のままだと、メッセージ表示前から表示されちゃうので。
こんな感じで、スイッチはおおむね、オマケ用のフラグ以外使わないようにしてね!

次回は、メッセージログとかいっちゃう?

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

オマケっていうか、注意点?
ちょこちょこ、オブジェクトの変数やスイッチを使用していますが
プロジェクト共有の変数やスイッチと違って
シーンを移動すると使えなかったり等あるので
使う場合は、どこでどう使うかよく考えた方が良いですよ。

ご存じとは思いますが、一応念押しをと思いました。


拍手[2回]

アクションゲームツクールMV」©2018 KADOKAWA CORPORATION.
その名の通り、アクションゲームを作るツールで
ノンフィールドADVを作ってみるわけです、はい。

今回は、タイトル・セーブ・ロードをやるよー。ひえー!

セーブスロットは、沢山あった方がいいけど
とりあえず、選択肢枠と同じ3つで。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

タイトルとロード用のシーンをそれぞれ追加して
タイトルの方は、公式の講座をと選択肢表示を参考に作ってね。
セーブデータがある場合は、「つづきから」にカーソルが
移動するようにしておくと良い感じかな。
終わり。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

さて、どのスロットにセーブデータがあるかどうかを
どうやって取得するかですが・・・
果敢にもスロット選択に挑んだサンプルゲーム
Steel Sword Story」を参考にさせていただきましょう。
なんと7月にswitchでもリリースされるようですよ!
楽しみですね!!

はい、というわけでサンプルを拝見したわけですが。
まあとりあえず、「ファイルを確認」というスイッチで
セーブファイルの有無を判定できる、ってことがわかりました。
変数で、スロットナンバーを選択したら自動的にONOFF切り替わるそうな。

セーブ方法は1種類しかないけど、ロード方法はいくつかあります。
・セーブと同じく、ロードスイッチをって全部ロードする
・その他の実行アクションから、ロードを選ぶ
 ・全変数だけロード
 ・全スイッチだけロード
 ・セーブ時のシーンだけロード
 ・スイッチONと同じロード
なるほどなるど。
セーブ時の状態でロードしたいので、スイッチを使うことにしましょうか。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

では、ロードを実装していきます。
・ロード用の選択肢を表示。
・1~3のスロットにセーブデータがあるかを調べる。
・それによって変わる選択肢のテキストを設定。
・データがあるスロットが選択されたら、ロードスイッチをONにする。
・空のスロットが選択された場合を考慮する。
・キャンセルボタンでタイトルに戻るようにする。

注意する点としては
セーブデータがあるかどうかは、タイトルで調べておくことかな。
ロード用のシーンに代わってからだと、テキスト表示が遅れてしまいます。


まあ、ファイルがあるかないかだけで
スロット分けをやるなら、こんな感じですかね。

Steel Sword Story」さんを参考に、頑張ってみるのもよいかも。
具体的には、カーソルの当たったスロット番号のファイルを変数とスイッチだけ読み込んで
データを表示している感じですね。
いやあ、すごいです。

というわけでロード画面、終わり。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

次はセーブです。
出来ればいつでもセーブできたらいいですね。
とりあえず、セーブ画面の作成は後回しにして、セーブのテストをしてみましょう。
Xボタン(Dキー)を押すとセーブするオブジェクトを作ります。
テストプレイで、セーブを実行したら、5Fでタイトルへ戻り
ロードイベントがちゃんと動いてるか確かめてみます。
問題なさそうなので、セーブ画面の作成に移ります。

大体ロードと同じだけど、仕様を考えます。
・Xボタン(Dキー)を押すとセーブメニューが表示されるようにします。
・キャンセルボタンで、メニューを閉じます。
・データがある場合、上書きするかの確認をします。
・セーブが終わったらゲームに戻ります。

またしても、公式の講座を参考にしまくるぜー。
つーことで、メニューシーンにメニューを追加します。
ロード画面を作った要領で、セーブ画面を作ります。

セーブ後にメニューを終了するという考え方では、ちょっと難しいようなので
セーブを予約するスイッチを一つ作り、メニューを終了してからセーブすることにします。
セーブを実行するオブジェクトは、シナリオを管理するレイヤーと同じにします。
セーブしたいシーンが複数ある場合、シーンごとに1つ配置します。

上書き確認も、セーブメニュー用内でやってもいいけど
編集画面がうるさくなるので、今回は一つ増やしてみました。
メニューに配置したオブジェクトは、どのメニューに配置しても
一覧で表示されるので、わかりやすさはあまり変わりませんが。
別のメニューを重ねても、下のメニューも動くので注意。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

というわけで、今回のサンプルプロジェクトはこちら

お約束通り、一文字ずつ表示のサンプルも入っています。
わかりやすいように、メッセージウインドウは半透過のままに
してあります、自分で不透明に変更してみたり
アニメーションの速度を変更してみたりしてね。

そして、新しい課題もあります。
このままだと、残りのメッセージを表示したいだけなのに
OKボタンで、次のメッセージに進んでしまいます。
どうしたらいいと思いますか?
一つ方法を思いつきましたが、宿題にしてみます。
次回までに、色々試してみてくださいね!

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

さあ、これで最低限必要な機能が揃いましたね!
いかがでしょう?
普通にADV作れそうじゃないですか?

というわけで、次回は・・・
オマケのCG観覧メニューに挑みます!?

拍手[2回]

アクションゲームツクールMV」©2018 KADOKAWA CORPORATION.
その名の通り、アクションゲームを作るツールで
ノンフィールドADVを作ってみるわけです、はい。

今回は、立ち絵や背景の表示をさくっとね。

選択肢同様に、別オブジェクトで管理するのがよさそうです。
メッセージ表示より後ろのレイヤーに配置するのがミソかなー。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

というわけで、今日の素材はこちらです。

立ち絵がしょぼいとか、わがまま言うんじゃありませんよ。
テスト用なんてこんなもんです!! ないよりましってことで。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

背景については、表示用のオブジェクトを作って
普通に画像の表示命令を使って、背景に表示させます。
表示状態を管理するための変数を一つ作っておくと良さそうです。
せっかくなのでフェードインとかさせたいですか、そうですか。
じゃあ、アニメーションに登録して、フェードインな感じにするとよいです。
終わり。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

ちなみに、暗転を表現したい場合は
シーンに画面効果を設定&削除を使って、画面を塗りつぶすと良いですよ。
メニューシーンにグラフィックを配置する方法ありますし、用途と好みによって
使い分けるといいと思います。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

立ち絵表示も似たようなものです。
表示位置を移動する程度なら、画像の表示で間に合うと思いますが
口パクアニメとかをするならアニメーション登録ですね。
キャラ毎に表示用の変数を作成しておくと良さそうです。

後は、メッセージ表示のオブジェクトから
変数を操作すれば、いー感じにできるんじゃなかろーか。
終わり。

え? スクショ? 前回と同じだから割愛で。

今回のサンプルプロジェクトは、こちらからどうぞ。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

レイヤーについて補足

レイヤーの表示順は、メニューシーンが一番上で
次いでレイヤー1、2,3・・・と続きます。
レイヤーの名前は変えられるし、順序も入れ替えられるので
最初からあんまり考えなくてもいいと思います。
(ただし、メニューシーンを追加する場合は
 後から順番を変えると、呼び出し命令で指定したメニューが
 変わってしまうので注意)

私の考えるADVシステム用の最適のレイヤー順は
予備枠、文章、予備枠、キャラ、背景です。

同じレイヤーにあるオブジェクト同士の表示順は
オブジェクトの配置時に指定できます。
ので、全部同じレイヤーに置いても、表示順で困ることはないと思いますが
レイヤーを分けるには、他にも理由があるのです。
それについては、別件にて。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


次回は、いよいよタイトル画面とセーブとロードです。
ドキドキ。
例によって、公式の講座を参考にさせていただきます。

ところで、テキストを一文字ずつ表示したいとか思います?
若干力業ですが、表示した文字の上のレイヤーに目隠しを表示し
テキスト表示後、一文字ずつ開けていくアニメにするとかですかね。
メッセージウインドウが不透過の場合に限りますが。
とりあえず、次回はこれも実装してみますね。

拍手[0回]

アクションゲームツクールMV」©2018 KADOKAWA CORPORATION.
その名の通り、アクションゲームを作るツールで
ノンフィールドADVを作ってみるわけです、はい。

今回は、選択肢表示をやってみましょう。
公式の講座を参考に作ります。

メニュー用くらいなら、選択肢の数だけ画像作るのもありだけど
選択肢がゲーム性なADVで選択肢の数だけ画像作るっていうのは
なかなか大変そうだ。
選択肢のウインドウだけ画像で作って、内容はテキスト表示にしようと思います。

とはいえ、選択肢が2つの場合、3つの場合・・・と選択肢の数ごとに
画像は必要かなって思います。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

今回は、選択肢3つで作ってみるということで、ウインドウ画像を作ります。

選択肢用のオブジェクトは、公式の講座を参考に作成してください。
カーソル用のオブジェクトも、公式の講座を参考に作成してください。
まーるなげっ! まーるなげっ! 私が説明するよりわかりやすいから!!

一つだけ、上記素材を使った場合、接続点は左上になります。
ご注意ください。

今更ですが、メッセージウインドウ上に表示する「入力待ちアイコン」も
この方法が有効かもしれませんね。
まあ、都合に合わせてお選びくださいということで。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

出来上がった選択肢オブジェクトに、機能を追加していきます。

まず、待機アクションを新しく作成して、初期アクションに設定。
呼び出された時だけ表示するように変更します。

選択肢の為に、素材の変数を2つ追加。
「起動する選択肢の番号」と「選んだ選択肢の番号」

待機アクションから、初期アクションだった選択肢へ
「起動する選択肢の番号」が1だったらリンク。

選択肢1を表示中に、OKが押されたらリンクするアクションを作成。
「選んだ選択肢の番号」に1を入れて、「起動する選択肢の番号」を初期化
して、待機に戻る。

他の選択肢も、同様に作成して「選んだ選択肢の番号」を変更。
選択肢のオブジェクトは以上。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

いよいよ、前回作ったメッセージ表示用のオブジェクト
選択肢表示をねじ込んでいきます。

セリフ用のアクションを一つコピペします。
テキストの表示内容を、質問内容に変更します。
入力待ちアイコン表示用のスイッチをOFFります。
選択肢表示オブジェクトに対して、「オブジェクトをロック」します。
ウェイトを0.01秒入れます。
(テキストの表示とオブジェクトの状態変化の速度が違うので調整する)
ロックしたオブジェクトに選択肢のテキストを表示します。
以下、セリフ用テキスト設定との相違点です。
 ・行間を少し開ける(枠の分だけ行間を開けないといけない)
 ・テキスト表示領域を選択肢ウインドウの大きさと同じに
 ・余白上下も調整
 ・メッセージ水平方向揃えで、センタリング
 ・ロックしたオブジェクトの中心
  (ウインドウの大きさをオブジェクトの大きさに合わせたので調整はいらない)
テキスト表示命令が終わったら、ロックを解除しておきます。

次に、選択肢の1番が選ばれた時のアクションを作ります。
選択肢表示アクションからのリンク条件は、「選んだ選択肢の番号」が1の時。
アクションの内容は、とりあえず最初のセリフを表示することにします。
ので、最初のセリフを表示するアクションをコピペ。
「選んだ選択肢の番号」を初期化する命令を追加。

他の選択肢の場合も同様に追加して、最後は消去にリンク。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

というわけで、完成したのがこちら。

わーい、これでもう完璧にゲームやで!!
例によって、背景とキャラはRPGツクールMZ標準素材を拝借。
©Gotcha Gotcha Games Inc./YOJI OJIMA 2020

今回のサンプルプロジェクトはこちらからどうぞ。

次回は、立ち絵や背景の表示ですね。
もはや説明が必要だろうか?
な感じですけれど、まあ一応やりますよ。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

☆オマケ☆
1画面より広いフィールドを歩き回るタイプのゲームの場合
メッセージ表示同様、メニューに配置するのが楽ちんなんですが
例えばプレイヤーが必ず画面の中心に表示されるようなマップの作り方をすれば
プレイヤーの位置を基準に表示する、というのもありかもしれません。
ただどちらの場合も、プレイヤーを表示するレイヤーと
メッセージを表示するレイヤーは別々にした方が良いと思われます。


拍手[2回]

前のページ      次のページ
広告枠
アクセス解析

ATOM  
ATOM 
RSS  
RSS 


ソフトウェア制作講座





Copyright ©   YUWAKA'S SOFT   All Rights Reserved
Design by MMIT / TemplateB3  Powered by NINJA TOOLS
忍者ブログ [PR]