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

今回は、BGMや効果音の音量変更ボイスのONOFFの二本立てということで。
ようするに、オプションメニューですね。

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

まずは、音量変更の仕様を考えます。
オプションメニューを呼び出し
カーソルが当たってる時に左右に入力すると音量を変更する。

おお、なんということだ、呼び出し用のボタンが足りない。
セーブ用に割り当てた、Xボタン(Dキー)を間借りしようと思います。

ということで、オプションメニューの内容としては
・セーブメニューを呼び出す選択肢
・ロードメニューを呼び出す選択肢
・BGM音量変更選択肢
・効果音音量変更選択肢
・ボイス音量変更の選択肢(あれば)

って感じかな。

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

メニューの作り方は、もうさんざんやったので説明不要ですね。

一応、おさらいというかまとめというか、大事なことは
メニューシーンは、元となる最初のメニュー以外に配置したオブジェクトは
配置されたメニューが呼び出されるまで動かない。
てことですね。

それを念頭におきつつ
ロードのメニューをタイトル用のをコピーして手直し。
最初からメニューからもロードするつもりで作っておけば
楽だったのにとちょっと思いました。

で、オプションメニューがこんな感じにできました。

テキストに埋め込んだ変数は、値の変化に応じて表示が変わったりしないので
数値の部分だけ、数値用のテキスト表示にしていますよ。

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

梱包されている楽曲は、私が昔作った「魔法使いさんお静かに」
という曲です。
同名の漫画(作:竹本泉氏)のイメージソングだったりします。
脳内ではもうちょっといい曲なんだけど
上手に譜面に起こせなかったんですよね・・・
なかよしで募集されていたから作った歌だけど
結局応募したのかどうかは記憶にない。

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

ところで、クリア状態を覚える方法を使って
若干セーブスロットのテキスト表記に差異をつけることができそうです。
オブジェクトの名前にも制御文字が使えるので
例えば、現在の場所を表記したり、今何章かとか、プレイ時間とか。

プレイ時間の表示について考えてみます。

プレイ時間をカウントしてくれてるっぽい変数が見当たらないので
カウントするオブジェクトを作る必要がありそう。

時2桁、分2桁で、合計4桁。
スロットの数はとりあえず3つとして
0はノーカンで、分の十の位は5まででよいので
(9×3+5)×3=96個のスイッチが必要ですね。
秒まで表示するなら、138個。

まあ、章数表示くらいが妥当な作業量感ですね。(短気)

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

これで、私の思いつくノベルゲーの機能がおおむね入ったと思います。
次回は、まとめというかあとがきになります。

改造して使ってよい、土台のプロジェクトファイルとか
サンプルゲームを配布するよー。

拍手[1回]

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

今回は、メッセージ一時消去スキップの二本立てということで。

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

まずは、メッセージ一時消去から、仕様を考えます。
Rボタンを押したら、メッセージおよび各種ボタンを消して
絵だけを表示する。

絵、以外のレイヤーを非表示にすればよい感じですね。
とりあえず、テキストの表示命令に「最前面」を指定していると
消えてくれないので、チェックを外してしまいます。

もしこれで、メッセージがキャラの後ろに表示されたりする場合は
メッセージ表示命令のあるオブジェクトを、キャラクターのあるレイヤーより
上のレイヤーに変更します。

後、レイヤーの動作もOFFにしておきます。
うっかり決定キー押すと見えないまま、話が先へ進んでしまうので。

消去中は、セーブやログ表示を起動できないようにしておきます。
その他メニューシーンに配置しているものも非表示にしますが
初期設定のメニューシーンは消去も停止もできないので
オブジェクトのアクションで制御します。

終わり。

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

じゃあ次、メッセージスキップね。

仕様を考えます。
Xボタン(Sキー)を押すと、選択肢までスキップする。
もう一回押すと、スキップを止める。

特定のスイッチがONの場合は、すぐに次へ進むリンクを追加すればよさそうです。
選択肢のアクションまで来たらスイッチを切る命令を入れれば大丈夫かな。

例によって、スキップ中はセーブや他のシステムを起動できないようにしておく。

一応、メッセージ表示中以外はスキップが有効にならないようにしました。

キャラクターの移動やアニメにウェイトがかかっている場合
そっちにもスキップの場合のリンクを貼る必要がありそうですね。

終わり。

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

説明も実装も、簡単ではありますが
スキップの実装は、ひたすら面倒くさい処理ですね。(遠い目)
まあでも、コピペしまくるだけなので単純作業ではあります。
やってできないことはないとわかりました。

仕様はきちんと控えを取って、ゲームの最初から終わりに至るまで
システムの筋が通るようにしなければなりません。
ならないというよりは、そうしておかないと忘れた時困るという。

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

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

次回は、最後の機能・・・
BGMや効果音の音量変更やボイスのONOFFです!

拍手[1回]

アクションゲームツクール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回]

アクションゲームツクール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観覧メニューに挑みます!?

拍手[1回]

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

ATOM  
ATOM 
RSS  
RSS 


ソフトウェア制作講座





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