スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ゲーム制作日記<25> ALQMEST制作状況

op.png



みなさん、こんばんは。
ネコタです。



今日は、現在制作中のゲーム「ALQMEST」の制作状況を報告します。


普段せっせとシステム作りをしていますが、一応、これも実際に使うものばかりですので、システム制作は結構はかどっています。


しかしながら、ストーリーが全く進んでいないという状況(笑)


システムのネタが思いついたときに作っておかないと、どっかに飛んで行ってしまうと思って・・・なかなか、他のことに手が回らないんですよね。


とはいえ、プラグイン制作は妻に。絵は絵師さんに制作してもらっています。並行して色々作業しているので、まあまあな進行具合かと思います。


全体の完成率としては、20%くらいでしょうかね。
今は、ストーリーよりも他の部分にだいぶ時間を割いています。




と、いうわけで。
今日は、依頼していた絵が完成したので、お披露目しようかと思います。

制作してくださった高鈴紅音様、ありがとうございます。




配布はしていないので、勝手にダウンロードしたり使用したりしないでくださいね。



それでは、今作の主人公アルトくんの登場です。

Alto_1.png


彼がまだ幼い頃、母は病気で亡くなり、父は行方不明になってしまった。
彼は父親の残した手記から錬金術を学び、出来上がった品を近くの町で売って生計を立てていた。

そんな彼には、1つの夢があった。

父親の手記には、賢者の石の記述があった。
その生成は錬金術師にとっての目標であり、
作り出すことができれば、どんな願いもかなえることができる
と言われる伝説の宝石だった。

彼は、志半ばで消息を絶ってしまった父に代わって、錬金術の完成を目指し、賢者の石を作るべく旅に出る決意をした。






アルトの、旅を始めた目的はこんな感じです。
ストーリーはまた別なので、これは、あくまで設定の話ですね。






そして、彼女がアルトのお供である妖精のロッテちゃんです。
キャラ1


運命に縛られた人間と、運命には縛られない妖精。
この2つの種族が出遭ったとき、運命の歯車は狂いだし、世界に大きな混乱がもたらされる。

だから、人間とは決して出会わないように・・・

そう、母から何度も何度も、耳にタコができるほど教え込まれてきたロッテ。


しかしながら、そんな言い伝えなどロッテは全く意に介しておらず、自由奔放に毎日を過ごしていた。



ある日、母にお使いを頼まれ、森で薬草とりをしていたロッテ。
ひょんなことから、人間であるアルトと出会ってしまった。



2人の出会いは、果たして偶然だったのか・・・



狂いだした運命の歯車は、世界を巻き込んで、あるべき終着点から少しずつ逸れていくのであった。







今作は、この2人が中心となって話が進んでいきます。
他、何人か登場人物が出てきますが、それはまたの機会に

絵が完成したら、また少しずつ発表していこうと思います。





紹介ついでに、今作のゲーム的要素についても一部紹介させていただきます。


今作の主人公アルトは、なかなか面白い特徴を持っています。

彼は錬金術師なので、”調合”を駆使して戦闘を有利にしていきます。


アルトが戦闘で使う調合は、”クイック調合”と呼び、アイテムTPを使用して攻撃や回復を行うことができます。


cr2-5.png



アルトのスキルについて説明する前に、簡単に、今回の戦闘システムを説明させていただきます。


戦闘は、スピード制となっています。
ターン開始時に、プレイヤーと敵が同時に行動を選択します。

そして、敏捷性の高いキャラクターから順番に行動し、全てのキャラクターが行動を終えたら1ターンが終了します。


戦闘は、両者ともTP50からスタートします。
相手に攻撃を行うためには、最低2TPを必要とします。

TPが0になると攻撃が出来なくなります


TPを溜める方法は、基本的には2通り


1つは、防御を選択すること。10TP溜まります。

もう1つは、ダメージを受けることです。
最大HPの2%のダメージにつき、1TP溜まります。

ただし、最大HPの2%以下のごく小さいダメージではTPが溜まりません。



今作では、以前紹介したTP式を取り入れていますので、戦闘におけるTPは大変重要なものです。


TPが大きければ攻撃によるダメージが増えますし、
小さければ逆にダメージが減ってしまいます

受けるダメージTPに反比例しますから、大きければ被ダメージは減り、小さければ増えてしまいます。



攻撃を仕掛けると、TPを消費します。
ダメージを与えれば、その分敵はTPを獲得します。


しかし、攻撃を仕掛けないわけにはいきません。
お互い、条件は同じです。


攻撃を仕掛けあいながら戦闘を行うわけですが、これらの仕組みによりTPが随時変化し、リアルタイムでダメージが変動していきます。そのため、回復防御攻撃状況に合わせて上手く使い分けて戦う必要がある、非常に戦略的なバトルシステムとなっています。

(と言っても、そんなに難しく考える必要がないように設計しています。よっぽど偏った形勢にならない限りは、そこまでダメージ変動は大きくありません)



さて、戦闘システムはこんなところで。


アルトのスキル紹介に戻りましょう。


cr2-4.png


アルトの使う”クイック調合”は、基本的にTPアイテムを消費します。

これは大きなデメリットですが、代わりに、メリットも相当大きなものとなっています。


画像にもあるように、アルトの作り出したアイテムは自身と敵のTP差を無視して攻撃を行えるものがいくつかあります。
紹介しているインスタント・ボムは、その1つです。

これは、クイック調合によってTPを消費する機会が多いアルトにとっては、重宝するスキルの1つとなるでしょう。


そして、このクイック調合。
実は、ターンを経過することなく即時発動します。


選択したその場で発動するため、アルトはスキルを使った後すぐに通常攻撃も可能です。防御してTP回復も可能です。

もちろん、またスキルを使用しても構いません。

これにより、TPアイテム(素材)がある限り、何度でも連続攻撃ができるというのが最大のメリットとなります。


ただし、これは大きなリスクと隣り合わせでもあります。


TP式では、TPが下がれば下がるほど不利なのは確実です。

スキルでTP無視できるからといって、何度も使用し、敵を倒しきれなかった場合・・・

その反動はとても大きいですね。
こちらと敵のTP差が圧倒的となるため、反撃が恐ろしい。


なので、プレイヤーはスキルを使用するタイミングや回数を慎重に選ばなければなりません

なかなかに癖のある主人公です。




次に、ロッテです。


cr2-3.png



ロッテは、細かいダメージを複数回与えるスキルを多く習得します。

耐久性、攻撃性という面での強さはあまり高くありませんが、素早い行動と、ダメージ分割パラメーター利用による火力アップを主としています。

TP式での戦闘では、ダメージを受けると反撃の威力が上がります。そうすると、先制攻撃できることによる有利性というのは、それほど有利というものでもありません

しかし、その有利性を担保してくれるのが、ダメージ分割です。


ロッテの攻撃スキルのほとんどは、低ダメージを複数回与えます

TPは、最大HPの2%につき1溜まるという縛りがありましたね。


ダメージ分割により、ロッテはこの縛りを下回りやすくなっています。すると、先制してダメージを与えているにも関わらず相手のTPを上げないため反撃のリスクを抑えることができる、という訳です。

HPの高いボス戦においては、大変有効な戦術となります。


ところが、ザコ敵はHPが高くないため、何をやってもTPは溜まってしまいます。しかし、そういった時にはパラメーター利用による火力アップが効いてきます。

特定のパラメーターを上げることでスキルの火力を上げれば先制攻撃により敵を瞬殺できるため、戦闘を有利に進めることができます。


ロッテは、この2つの特徴を利用して戦闘を有利に運ぶことが出来るキャラクターとなっています。



今回の紹介は、ここまで。
続きは、また来月。




ではでは、今日はこの辺で。
ネコタでした。

スポンサーサイト

ゲーム制作日記<24> 無双システム拡張

op.png



みなさん、こんばんは。
ネコタです。



今回は、前回の予告通り無双システムにおける効果範囲の拡張です。


今回紹介するのは、円範囲の作成方法です。


tc22-19.png


前回の内容を確認したい方は、こちら↓
無双システム



早速、イベントの中身を見てみましょう。


コモンイベント : 撃破(円)
tc23-11.png
tc23-12.png



内容は、ちょっと複雑になっています。


まず、距離上限(下限)が変動するので、変動用の変数を別途用意しておきます。


X軸の変動用変数には上限(下限)値を格納しておき、
Y軸の変動用変数にはを代入しておきます。


そして、撃破(スクエア)と同じように、プレイヤーとイベントの距離を求めて、範囲内に一致したら撃破演出を行います。
(Y軸は上限・下限がともに0なので、距離=0の時になっています)



次に、ここからループ処理に入ります。

詳しくは後ほど解説しますが、先ほどの範囲条件は、X=下限~上限、Y=0の時なので、プレイヤーから横に指定したマスのみの範囲になっています。


tc23-7.png


範囲としては、こんな感じです。


ループの中身では、この範囲を変形させるための処理を行います。

X軸の上限は正(+)の値ですので-1させます。
X軸の下限は負(-)の値ですので+1させます。

Y軸の上限は最初が0なので、ここから+方向に1つ伸ばします。
Y軸の下限は最初が0なので、ここから-方向に1つ伸ばします。

この操作を行った後に、再びプレイヤーとイベントの位置を比べて距離を測ります

この範囲内に入っていれば、撃破演出を行います。


最初の状態から1回ループをまわった時の範囲は、以下のようになります。


tc23-6.png


そして、X軸の上限(下限)値が0でなかった場合には、もう一度処理を繰り返します。
(ループ中断の条件はX=0の時にする)


1回のループではにならなかったので、もう一度先ほどの操作を繰り返すと、下の図のような範囲となります。


tc23-5.png


この操作が終わった段階で再度、X軸=0か判定すると、今度は0なので、ループを中断してコモンイベントを抜けます。


イベントのページは、操作がこのコモンイベントのみで、さらに並列処理ですので、無双システムの演出が終わるかページが切り替わるまで、永遠とこの範囲変動を繰り返します。



さて。この処理は、上限下限値の絶対値(符号をとっぱらった値。+2と-2の絶対値は、どちらも2です。)が同じであれば、いくらであっても内容を変える必要がありません


理屈は、下の図の通りです。


tc23-14.png



範囲の場合分けを図にしたものですが、これを見ると、ある一定の法則があることが分かります。


中央を起点として、X軸は外側に向かうにつれて範囲が1つずつ狭くなります

同時に、Y軸は中央を起点として、外側に向かうほど範囲が拡大していきます


この法則に従うと、X軸とY軸を同時に1つずつ変動させるだけで、全ての場合分けを行うことができる、というわけです。


一番外側がどの場合でもX=0となっているので、ここが処理終了地点となります。





ちょっと難しい話だったかもしれませんが、以上が円の範囲を指定する方法でした。





ついでに、これも紹介しておきましょう。


tc23-13.png



変数射程範囲を指定するだけで、自動的に上限下限を指定してくれるコモンイベントです。

これを、範囲指定の際にセットで入れておくことで、変数を1つ指定してやるだけで自動的に上限下限値を指定してくれます。

そうすると、無双システムは自動的にこの値を利用して範囲変動してくれますので、結果的には管理する変数は1個で済むようになります。

(無くても、それほどの手間ではないので、不要であれば作らなくてもいいものになります)




自分の使う範囲はこれくらいです。
他、演出に合わせて個性的な範囲を用意しても良いでしょう。

例えば、扇状に前方の敵を殲滅するとか。



範囲の形も、色々あると面白いかもしれませんね。






ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

ゲーム制作日記<23> 無双システム

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。


今回ご紹介するのは、無双システムです。

以前、無双みたいなのが実装できるプラグインを作ってくださいと呟いてみましたが、結局コモンイベントで作ってしまいました(笑)



意外と、やろうと思えばできるもんですね。



それでは早速、今回のシステムがどういった挙動をするのか見てみましょう。


tc22-1.png


自分で設置しといてなんですが、気持ち悪っ!
見るからにウザそうな虫がうじゃうじゃいます。



さあ、無双システムを使って、
この虫どもを蹴散らしてしまいましょう!



tc22-2.png



うっひょー!爽快!

ふははは、
見ろ!シンボルエンカウントがゴミのようだ!



tc22-3.png


無双を発動して歩いただけで、この通り。
スッキリしました。


ちなみに、私の作ったシンボルエンカウントは無限復活するので、蹴散らした虫どもが上でうじゃうじゃ復活してきます。


無双を連打し、プチプチ潰してストレス発散
できるような仕様です(笑)



これさえあれば、シンボルエンカウントが多めのゲームデザインでも心配ありませんね。

無双で蹴散らして歩くという、アクション的な要素が追加できます。




さて。スッキリしたところで、実装手順を紹介します。

今回のシステムは、コマンド自体はそれほど難しくないのですが、
理解するのはけっこう大変かもしれません。頑張ってください。


まずは、準備するモノの確認です。



【必須】
変数 ×3
スイッチ ×1
イベントページ(シンボルエンカウントなど)
コモンイベント(無双システム演出用)
コモンイベント(スイッチ起動用)
スイッチを起動するためのプラグイン


【推奨】
変数 ×5 (【必須】に追加して使います)
コモンイベント(無双システムの範囲記述)




無双システムを発動するためのプラグインですが、私は、YanflyさんButtonCommonEventsPictureCommonEventsを利用しています。


プラグイン : ButtonCommonEvents
tc22-13.png

プラグイン : PictureCommonEvents
tc22-14.png


導入の仕方はゲーム制作日記<9> レーザー発射(発射台→プレイヤー)を参照してください。


これにより、コモンイベントをいつでも扱えるようになります。
あとは、コモンイベントスイッチをONする内容を記述しておきます。


tc22-15.png







それでは、今回のイベントの内容を見てみましょう。


シンボルエンカウント : 1ページ目
tc22-4.png


シンボルエンカウント : 3ページ目
tc22-5.png
tc22-6.png
tc22-8.png
☆マークからが続きです)



これは、以前作成したシンボルエンカウントのイベントです。
(少し中身をいじっていますが、挙動はほぼ変わりありません)


これに、新しく無双システム用のページを加えます。


tc22-10.png


挿入場所は、出現用ページの前、戦闘用ページの後にします。
(今回は2ページ目)


ページを挿入したら、赤枠の部分を設定します。
中身は、無双システムを記述したコモンイベントのみです。


無双システム自体はコモンイベントで記述しなくても構いませんが、おそらく全てのシンボルエンカウントに実装するため、手直しする可能性もあることを考えるとコモンイベントで作っておいた方が良いでしょう。


何かあったときに、全てのエンカウントをチェックして手直しするのは、かなりしんどいですからね(^^;



また、コモンイベント「撃破(円)」と書いていますが、この(円)は、シンボルを認識する範囲を示しています。

後ほど出てきますが、範囲には”スクエア””円”の2種類を設定できるように作りました。


やろうと思えば”楕円”とか”直線”とか色々できそうですが、
自分のゲームで実装するのは”円”だけ

”スクエア”は、制作途中でできたものなので、一応、可変できるようにそのまま残しているだけだったりします(笑)



では、無双システムの本体となるコモンイベントを見ていきましょう。


tc22-12.png


赤枠部分のとおり、トリガーは並列処理、スイッチは無双システムです。

内容は、プレイヤー起点にアニメーションを表示するだけ。

演出が終わったら、スイッチを切ります



先ほど見ていただいたシンボルエンカウントは、この演出が動いている間だけ、内容が起動するようになっています。

要するに、この演出用のコモンイベントで、
無双タイムの長さが決定するわけです。



では、いよいよコモンイベント「撃破」の内容を見ていきます。

の内容は難しいため、先ずは、基本を押さえるためにスクエアの中身を見てみましょう。


tc22-18.png



内容としては、プレイヤーとイベントの位置情報を取得し、その差(距離)プレイヤーを中心として指定された上限~下限の範囲内にあれば撃破演出を行い、セルフスイッチAをONに(出現用ページに移行)する、という記述になります。


手順としては、まずX軸の距離を読み取り指定した範囲内に対象が居れば、次にY軸の範囲を読み取ります

どちらの範囲条件も満たした場合撃破演出を発生させ、セルフスイッチをONにしてシンボルエンカウントを消滅させます。



参考までに。
下の画像は、上限=2下限=-2に設定した時の範囲です。

範囲の設定は、スタートイベントなどで変数処理を行っておきましょう。

(ゲーム内で範囲拡大をすることが無い場合には、直接数字を設定して構いません)


tc22-17.png
(色付けのためにリージョンを利用しただけです。リージョンは本イベントで使用していません)


X軸は、プレイヤーを中心に右方向が+軸、左方向が-軸です。
Y軸は、プレイヤーを中心に上方向が+軸、下方向が-軸です。


なので、
上限距離を増やせば、右および上方向に範囲が拡大され、
下限距離を増やせば、左および下方向に範囲が拡大されます。


条件分岐で使用する上限(下限)をX軸、Y軸で分ければ、
横方向のみに拡大縦方向のみに拡大、といったこともできます。





以上が、無双システムの内容になります。

内容がだいぶ濃くなったので、撃破(円)の作り方は次回にしますね。


ちなみに、撃破(円)の範囲は下の画像のようになります。
画像は、上限=2下限=-2の時です。


tc22-19.png








ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

ゲーム制作日記<22> トリックスイッチ3

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。



前回までの内容で、スイッチ型宝箱型のトリックスイッチをご紹介しました。

今回は、予告通りレバー型トリックスイッチの解説です。


tc19-4.png



レバー型は、他のスイッチと比べて少し毛色が違います。
クリア条件が、全てのスイッチが同じ向きになったときでしたね。

そうなると、作り方も全く異なります。
なので、今回は一から作っていくことになります。



まずは、必要なものの確認です。


【必須】
変数4


【推奨】
コモンイベント:ドア開閉の挙動



必要なものは、他の型のトリックスイッチと同じですね。
それでは、イベントの中身を見ていきましょう。


最初は、縦列3個セットのうち、一番上のスイッチからです。


スイッチ1 : 1ページ目
tc21-1.png


他の型のスイッチに比べると、内容はすごく簡単ですね。
特に挙動が無いので、すっきりしています。

内容は、

・自分の状態変数を+1する。
隣のスイッチを管理する変数=3ならに変更、それ以外なら+1する。


これだけです。


それでは、2ページ目を見てみましょう。


スイッチ1 : 2ページ目
tc21-2.png


さて、何が変わったでしょうか?(笑)


変更したところを赤枠で囲ってみます。


スイッチ1 : 2ページ目
tc21-5.png


実は、内容は全くいじっておりません。
コピペで良いんです。

他のスイッチを作るときは変数=○と書いていましたが、今回はコピペで作りたいので、楽しちゃいました(笑)


それでは、3ページ目を見ていきましょう。


スイッチ1 : 3ページ目
tc21-6.png


変更点は赤枠で囲ってあります。
はい。これも内容はコピペです。



さて、よく見ると、
これでスイッチの画像は全て揃っているように思います。

しかし、ページは4ページありますね。



では、謎の4ページ目を見てみましょう。


スイッチ1 : 4ページ目
tc21-4.png


おや、2ページ目の画像と同じですね。
しかし、よく見ると中身が微妙に違います。


スイッチ1 : 4ページ目
tc21-8.png


赤枠部分が、2ページ目と違う箇所です。

レバーの挙動は左→中央→右→中央→左・・・
としたいのですが、右から中央に戻すときには
2ページ目に移行させると都合が悪いんです。

そこで、4ページ目を中央の画像にし、操作を変数=0(左向き)とすることで対応しました。




さて、ここまで見ると、条件分岐の内容も理解できるかと思います。


条件分岐の部分は、隣のスイッチを動かすための内容です。
条件分岐変数=3の時はそれをに変更し、それ以外の時は+1する、という内容でした。


変数=3の時というのは、右→中央の動きをしたときのページとなりますから、中央→左の動きを操作するには、変数を0に変えなければなりませんでしたね。

それ以外の状態というのは、右に到達していないので、変数を+1しています。



これで、レバー型トリックスイッチの基本的な動きはできました。



次に、中央のスイッチを見てみましょう。


スイッチ2 : 1~4ページ
tc21-9.png
tc21-10.png
tc21-11.png
tc21-12.png


内容としては、ほぼ同じです。
隣のスイッチが2つあるため、2つ分の操作が書いてあるくらいです。


スイッチ2 : 1ページ目
tc21-13.png


緑枠がスイッチ1の操作で、
青枠がスイッチ3の操作ですね。


2つめのスイッチの作り方は言わずもがな。
1つ目と同じように作ります


まずは、1ページ目を作成したら、内容をコピペして、


tc21-14.png
tc21-15.png
tc21-16.png


2~4ページ目については、
1つめと同様に赤い枠のところを変更して完了です。



3つ目のスイッチは、もう分かりますよね。

1つ目のスイッチコピペして使用する変数を変えてあげてください。




さて、これでスイッチは完成しました。
しかし、大変なのはこれからです。

レバー型スイッチによる大扉の開放条件を書き込みます。


大扉 : 1ページ目
tc21-17.png
tc21-18.png
tc21-20.png



条件分岐なげぇ!!


というわけで、1つずつ解説していきます。
まず、一番簡単なところから。


tc21-23.png


スイッチ1の変数=スイッチ2の変数=スイッチ3の変数の時、すなわち、全ての向きが揃っている時ですね。

この時はクリア条件を満たすので、ラベルジャンプ大扉開放のところまで飛ばします。



問題はこの下の長々と書いてある条件分岐ですが。

レバーが中央に位置している状態というのは、状態変数=1の時、=3の時の2通りあります。

なので、これらについての条件分岐を考えなければならないために、開放条件が長くなってしまいました。


これらの開放条件については、下の図で説明した方が早いです。


tc21-21.png


大扉の開放条件をざっとまとめました。



先ほど説明した全ての状態が同じときの条件分岐についてはもう記述してあるので、それらを削除します。



tc21-22.png


残った6つが、追記しなければならない条件分岐です。


長々と書いているのは、これらの記述です。すなわち、

・スイッチ1=1の時
   スイッチ2=1、かつ、スイッチ3=3
   スイッチ2=3、かつ、スイッチ3=1
            、かつ、スイッチ3=3

・スイッチ1=3の時
   スイッチ2=1、かつ、スイッチ3=1
            、かつ、スイッチ3=3
   スイッチ2=3、かつ、スイッチ3=1


イベントに書かれている条件分岐にの形に合わせて書いてみました。

条件を満たしたときの挙動は全部同じ。いちいち全部書くとかさばるし面倒くさいので、ラベルジャンプでまとめてしまいました。



以上、レバー型のトリックスイッチでした。


これで、全てのトリックスイッチを解説しましたね。


今回はトリックスイッチで大扉を動かしましたが、使い方は自由です。

機械を動かしてみたり、像が動き出してみたり、隠し階段が現れたり。


色んな所で、使い道はあると思います。
解き方もそんなに難しくないので、ご自分で考えてみてください。

どのトリックスイッチも、3つくらいの難易度なら適当にやっていれば、そのうちできますよ。




ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

ゲーム制作日記<21> トリックスイッチ2

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。




今回は、前回のトリックスイッチの続きで、宝箱型のトリックスイッチの解説をしていきますね。


tc19-2.png


といっても、前回のトリックスイッチと作り方はほぼ同じです。


スイッチ型との違いは、宝箱を開けたあと。
今度は、閉じることが可能ということです。

そのため、2ページ目の作成が必要となっています。



必要なものは、スイッチ型と同じなので、今回は準備を割愛して、さっそくイベントの中身を見ていきましょう。


宝箱型スイッチ1 : 1ページ目
tc20-1.png
tc20-3.png
☆マークからが続きです)


内容的には、スイッチ型とほぼ変わりありません。

使用する変数が違うだけで、挙動も全く一緒です。

自身の動作と、隣の宝箱型スイッチ開閉動作を一緒に行い、状態を管理している変数を変更します。



では、2ページ目を見てみましょう。


宝箱型スイッチ : 2ページ目
tc20-5.png
tc20-18.png



2ページ目の内容は、1ページ目とほとんど同じなので、
まず、コピペしてしまいます。

その後、赤い枠で囲っている部分を変更して終わりです。



こんな具合に、他の宝箱型スイッチも作成していきます。



宝箱型スイッチ2 : 1ページ目
tc20-13.png
tc20-14.png
tc20-15.png
tc20-16.png



まずは、スイッチ型と同様に作成し、


宝箱型スイッチ2 : 2ページ目
tc20-7.png
tc20-19.png




内容をコピペして、赤枠のところを変えて終わり。



3つ目の宝箱も同じです。


宝箱型スイッチ3 : 1ページ目
tc20-10.png
tc20-12.png
☆マークからが続きです)


宝箱型スイッチ3 : 2ページ目
tc20-9.png
tc20-20.png




宝箱型は、ほとんどスイッチ型内容が重複するので、スイッチ型が作れたらそれほど難しくありません。


トリックの難易度的にも、スイッチ型と同等くらい。
ミスリードがある分、少し難しくなったかも?という程度です。


ぶっちゃけ、解き方はスイッチ型と同じですからね。




次回は、レバー型の解説をしようと思います。






ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

ゲーム制作日記<20> トリックスイッチ

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。



今回紹介するのは、トリックスイッチです。


てか、自分。スイッチ作るの大好きね(笑)
これ、5個目じゃないですか。


tc19-1.png


ここに、いくつかのスイッチを用意しました。




tc19-2.png


これが、宝箱型のトリックスイッチです。




tc19-3.png


そして、これがスイッチ型のトリックスイッチです。




tc19-4.png


最後に、レバー型のトリックスイッチ。



これらを操作して、いずれかのトリックをクリアすると大扉が開く仕掛けです。


tc19-5.png






では、トリックをクリアした後の画像を見てみましょう。


tc19-7.png


このように、大扉が開いています。
画像は、全てのトリックをクリアさせています。





tc19-8.png


宝箱型のトリックスイッチは、全て開いたらクリアです。





tc19-9.png


スイッチ型のトリックスイッチは、全て押したらクリアです。





tc19-10.png


そして、レバー型のトリックスイッチは、全ての向きが揃ったらクリアです。





これらのトリックスイッチには、共通点があります。

それは、押したら隣のスイッチも一緒に動くという仕掛けです。



宝箱型の場合は、どれかを開閉すると、その隣の宝箱も自動的に開閉します。開いているものは閉まり、閉まっているものは開きます。


スイッチ型の場合は、どれかを押すと、その隣のスイッチが押されるか飛び出るかします。押してあるスイッチは飛び出て、押されてないスイッチは一緒に押されます。

ちなみに、押してあるスイッチを踏んでも、何も起きません。そこが、宝箱と違うところですね。


レバー型の場合には、一段階たおすと、隣のレバーも一緒に一段階たおれます。倒れる順番はから始まり、中央、右、中央、左・・・と繰り返していきます。


これらの操作を繰り返して、見事条件をクリアすれば扉が開放される、というギミックです。

ちょっとした脳トレですね。



難易度的には、

スイッチ < 宝箱 < レバー

の順で難しくなっていきます。


今回は3個を1セットで用意しましたが、理屈上は4個でも5個でも・・・多分、10個になってもクリアできるはず。
(問題として成立するのは3個からです)


ただ、あまり難しくしてしまうと、トリック系が苦手な方には嫌がられてしまいます

使うとしたら、多くても5~7個くらいかなぁ、と思います。
3個だと、適当にいじってもクリアできるレベルの難易度です。


あと、ランダムエンカウントのシステムとは相性が悪いです。

トリックを解いている最中にエンカウントしてしまうのはたいへん鬱陶しいので、問題を開始した時点でエンカウントを切る必要があります。

シンボルエンカウントも、問題を解いている最中に入って来ないようにしましょう。




さて、それでは今回のイベントの中身を見てみましょうか。

今回はコモンイベントを使ってもいいですが、コモン化させてもほとんど役に立たないので、普通のイベントに全部書き込んだ方が良いです。


いきなり全部を紹介するのは大変なので、今回は、
最も難易度の低いスイッチ型だけ解説します。




まずは、準備するものの確認から。


【必須】
変数 ×4


【推奨】
ドア、スイッチ挙動用コモンイベント





それでは、大扉の内容から見ていきましょう。


大扉 : 1ページ目
tc19-12.png


気取って、英語にしてみました(笑)
純国産(というか、私自身の発案)ですので、安心してください。

ちなみに、私の英語力はほぼ皆無なので、間違っているかもしれません(笑)



大扉には、開放操作が書かれています。


大扉 : 1ページ目
tc19-29.png


緑の枠が、宝箱用の開放操作。
青い枠が、スイッチ用の開放操作になります。


内容としては、どちらも一緒です。

スイッチの方は変数で状態を管理しており、1ならON0ならOFFとしているので、スイッチ3つの状態を変数DoorStateに足して、であれば変数DoorState=4にする。足してにならなければ、0にリセットして、再び状態の監視を行います。


大扉 : 2ページ目
tc19-14.png



変数DoorState=4の時は、大扉が開いている状態です。

スイッチの状態を監視しなくなったので、あとはスイッチをいじっても何も起きません



次に、スイッチの方を見てみましょう。
ちょっと、ごちゃごちゃして見づらいです。


スイッチ1 : 1ページ目
tc19-16.png
tc19-18.png
☆マークからが続きです)


この内容は、3個セットのうち左端のスイッチの内容です。

やたら長くなっているのは、隣のスイッチを動かす内容が書いてあるからです。


宝箱やスイッチが動くときのテンプレートですので、コピペできるようにどこかに用意しておくと良いでしょう。


内容は、まず自身のスイッチのプッシュ動作を行います。
(ウエイトがかからないように、チェックを外しておきましょう)


そして、条件分岐を組み、隣のスイッチの状態を管理した変数=1の時(押してある状態の時)は、スイッチが飛び出る動作をさせて変数=0(スイッチが飛び出している状態)にします。

それ以外の時(スイッチが飛び出ている状態の時)は、逆に押す動作を行わせて変数=1(押してある状態)にします。

最後に、イベント自身の変数=1にして終了です。


スイッチ1 : 2ページ目
tc19-19.png


2ページ目には、何も書いていません。押してあるスイッチは、自分自身では操作不能にしています。


2番目のスイッチ3番目のスイッチも内容はおおむね同じです。
隣のスイッチの挙動を操作して、自身の変数=1にする。それだけです。


スイッチ2 : 1ページ目
tc19-20.png
tc19-21.png
tc19-22.png
tc19-23.png


スイッチ2 : 2ページ目
tc19-24.png



両隣があるスイッチは、内容が少し面倒くさいです。
綺麗に動かすためには、この形の条件分岐でないといけないので、ちょっと大変。


スイッチ1スイッチ3の状態がどのようになっているかで、動かし方を変えます。


・変数スイッチ1=1、かつ、変数スイッチ3=1
  →スイッチ1が飛び出す操作(ウエイトなし)
     +スイッチ3が飛び出す操作

・変数スイッチ1=1、かつ、変数スイッチ3=0
  →スイッチ1が飛び出す操作(ウエイトなし)
     +スイッチ3がへこむ操作

・変数スイッチ1=0、かつ、変数スイッチ3=1
  →スイッチ1がへこむ操作(ウエイトなし)
     +スイッチ3が飛び出す操作

・変数スイッチ1=0、かつ、変数スイッチ3=0
  →スイッチ1がへこむ操作(ウエイトなし)
     +スイッチ3がへこむ操作




3番目のスイッチは、1番目のスイッチとほぼ同じ内容になります。



スイッチ3 : 1ページ目
tc19-25.png
tc19-27.png


スイッチ3 : 2ページ目
tc19-28.png



これで、スイッチの挙動が完成しました。

これをたくさん作るのもなかなか面倒くさいので、作る側からしても3~5個くらいにしておきたいところですね(^^;



ここで終わり・・・
と行きたいですが、忘れてはいけないのが、
どうしようもなくなった方のためのフォロー

つまり、リセットボタンの存在です。


パズル・トリック系を組むときは、
必ずリセットボタンを用意してあげましょう。

でないと、最悪、取り返しがつかなくなって詰みます
(マップを変えると戻せる場合でも、あった方が親切です)


tc19-6.png


今回、このボタンはリセットボタンの役割を担っています。


リセットボタン : 1ページ目
tc19-30.png


今回はいろいろと用意してあるので、大扉、宝箱、スイッチの全ての状態を初期値に戻しています。




リセットボタン : 2ページ目
tc19-31.png


押しっぱなしではリセットボタンが1度しか使えないため、5秒後に自動でもとに戻るようにしています。



以上が、スイッチ型のトリックスイッチです。

次回は、宝箱型のトリックスイッチの作り方を説明しようと思います。




ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

エンカウントについて

op.png



みなさん、こんばんは。
ネコタです。



今日は制作日記をお休みして、思ったことでも書こうかなと。


RPGをやったことある方なら一度は耳にしたことがあるであろう、
シンボルエンカウント

個人的には、結構好きなシステムだったりします。




ところで、エンカウントの方式には、
大きく分けて2種類ありますよね。




1つは、ランダムエンカウントドラクエFFみたいに、歩いているとランダムで戦闘になるってやつですね。



もう1つは、シンボルエンカウント

マップをウロウロしてる敵にぶつかると戦闘になるってやつです。
ヴァルキリープロファイルとか。


ポケモンは、シンボルランダムの両方がある感じですよね。言ってみれば、野生のポケモンはランダムエンカウントで、トレーナーはシンボルエンカウントです。


個人的には、どちらも一長一短があって、どちらも良いと思います。ただ、作り手とユーザーでそれぞれメリット・デメリットがあり、導入はゲームのデザインによるかなぁ、と思います。



私が思うに、ランダムエンカウントは、
プレイヤーのレベルをある程度の水準に保ってゲームを進行させたい方にはオススメの方法だと思っています。

ランダムの場合には、大体何歩ごとに敵に出くわして、どのくらいの敵とはどのくらい遭遇する、というのが分かります。計算ができる方なら、期待値だって求めることができます。


例えば、約30歩ごとのエンカウントを設定し、ダンジョンを抜けるまでには600歩要するとしましょう。


出現する敵は、

A : 経験値500 (60%
B : 経験値800 (30%
C : 経験値100010%


とした場合には、


ダンジョンで敵と遭遇する回数 : 
 600/30 = 20回

戦闘1回あたりの経験値 :
  500×0.6 + 800×0.3 + 1000×0.1
 =300 + 240 +100
 =640

ダンジョンを抜けた時に獲得している経験値 : 
 640×20 =12800


こんな具合になるので、電卓をたたくなり、テストプレイで経験値増減操作をしてレベルを確かめてみれば、ダンジョン攻略時のレベルを知ることができます。(大体の目安です)


もちろん、1回くらいは普通にテストしてみる必要はあります。

思ったよりも戦闘回数が多くてうんざりするようなら、敵の経験値単価を上げるなりして調節するなど・・・・・・テストすることで課題も見えてくるでしょうからね。


ただ、逃げまくることで作り手の意図を回避することもできますから、できるだけ各ダンジョンにはボスを用意しておいた方が良いでしょう。

順当に遊んでくれれば、ほぼ互角、
という強さで設定すれば、ゲームの難易度はそんなに高くなりません。


意図から逸れた遊び方をする場合には、ボスは避けられない強敵となります。そんな方々に対しては制裁の意味もありますね(笑)

それを楽しみ、攻略する、
という遊び方もあるかもしれませんけども。




一方、シンボルエンカウントですが。こちらは、
避けることを前提にゲームを進行させたい場合に向いているシステムだと思います。


敵が見えているので、戦いたくない人は戦わない、好戦的な人は追いかけまわして狩る。そういった遊び方が想定されます。

ちなみに、私は地獄の果てまで敵を追いかけまわして、ダンジョン内の敵を駆逐するタイプです(笑)


好戦的なタイプの方はほっといても勝手に攻略してくれるのでいいのですが、考慮してあげなければならないのは戦いを避けるタイプの方。ここに焦点をあてないと、ユーザーが楽しめなくなります。


ありがちなのが、ダンジョンに配置した敵すべてを倒したらボスと同等に戦える。そんな風に強さを設定すること。

たぶん、多くの方が「ボス強すぎ!」となって、困っちゃうと思います。

ユーザーが好戦的な方なら想定通りにプレイしてくれるでしょうが、あまり好戦的でない場合には敵を数体(あるいは、ほとんど)取りこぼすでしょうから、相当な苦戦を強いられます。



シンボルエンカウントの場合には、敵シンボルを避けられるということも醍醐味だったりします。

遊んでいると、やはり、敵がうざったく感じることも結構あります。

例えば、プレイヤーがピンチに陥って、極力敵との戦闘を避けたいとき。こんな時は、回復できるところまで逃げて体制を立て直したいです。

ランダムエンカウントでは、そういった状況でも空気を読まずに敵が襲い掛かってきます

しかし、シンボルエンカウントでは意図的に避けていくことができます



このように、それぞれで特徴があるのですが。大雑把に考えるなら、

ランダムエンカウント
作り手にとっては都合が良いシステムで、

シンボルエンカウント
ユーザーにとって都合が良いシステム

のように思います。


さて、ここで思うのですが。ユーザーにとってシンボルエンカウントの方が都合が良いことが多いのであれば、やはりシンボルエンカウントを導入した方が喜ばれやすい、という事になるのでしょうか?


そういう訳でもない、と私は思います。


ランダムエンカウントの場合には、良くも悪くも、
設定した歩数に依存して戦闘が行われます。

感じ方は人それぞれですが、
戦闘回数が多くウザったく感じられることもしばしば。


例えば、戦闘回数が多いことによる弊害というのは、

・戦闘が作業化する。
・物語以外の部分で大幅に時間を取られる。
・ピンチに陥りやすく、逃れられない。


くらいは、ぱっと思いつくところ。言い換えれば、これらの弊害を解消してあげれば大分遊びやすくなるという事でもありますね。


対処法の例としては、

・戦略的な戦闘を行えるようなシステムを導入する。
・1回の戦闘時間を短縮する。
・ザコ敵は倒しやすい強さに設定。



とはいえ、戦略的な戦闘を考えた場合には、ザコ敵にもある程度の強さを求めたいような気もします。戦闘時間短縮のために、1~2回殴れば瞬殺できてしまうようでは、戦略的も何もありませんからね。


その場合には、戦闘以外のところでフォローしてあげると、遊びやすさが増します。


・こまめに回復できるポイントを設定する。
・回復アイテムが多く手に入るようにする。



こういった工夫は、全部盛り込めば盛り込んだだけ良い、というわけではありません。ゲームのデザインによって、必要な物を必要な分だけ盛り込むことが重要となります。


例えば、敵を通常攻撃だけでサクサク倒せてしまえるゲームにおいては、回復アイテムや回復ポイントなどを多めに配置しても、ほとんど使いません


これらが効果的になるゲームデザインというのは、

・互いに高いダメージの応酬があり、こまめな回復が必要となる。
・通常攻撃では時間がかかるが、魔法などMP消費により戦闘が劇的に楽になる。


こういった場合には、回復できることが大きな恩恵となります。



ところで、シンボルエンカウントはユーザーにとって都合が良い場合が多いと思いますが、作り方によってはかえってゲームを苦痛にすることがあります。


例えば、狭い通路に敵がいて、避けることができない。

意図的にそういう罠を仕込むのは良いですが、偶発的にそういった事態が頻発するのでは困りものです。


追ってきた敵にも挟まれて戦闘を余儀なくされるのでは、嫌な時は避けられるというメリットを活かすことができません。


また、敵の密集度が高かったり逃げ回ると同様に密集度が高くなってしまう場合も困りものです。


連続戦闘が避けられない状態になってしまっては、やはりストレスに感じてしまいます。



これらの展開がストレスに感じられるのも、やはり前提に”避けられる”ということがあるからのように思います。なので、原則として敵は避けられて当たり前ということを念頭において作ることが求められてくると思います。


これらの事故を起こさないための対処方法としては、

・敵が密集しないように配置する。
・そもそも敵を追ってこないようにする。
・通路は広くする。
・プレイヤーと敵の移動速度に差をつける。

といったことが考えられます。


ところで、シンボルエンカウントのメリットはユーザーが敵とのエンカウントを選べる点にありますが、デメリットとしてはユーザーによって獲得している経験値の差が大きくなりやすいことです。


ボス戦を想定した場合には、これが致命的な差となって現れることになります。


サクサク進んできたけれど、ボスにぶち当たったときに、全くかなわない。そこらへんのザコ敵も強すぎて、結局、適正な強さのところまで戻って修行しなおさなければならない・・・


詰みの時間、ですね。
(暗殺教室のタイトル風に)


苦行が好きならば、これくらい乗り越えられるでしょうけれども。そもそも、苦行が嫌いだから戦闘を避けてきたわけです。


こういった事態に対するフォローが、シンボルエンカウントを導入する場合には必要となります。


考えられる対処方法はいくつかあります。

・戦闘以外にも経験値を得られるシステムを導入する。
・修行が必要であることを誘導する。
・定期的に修行を強制する。
・いっそのこと、ボス以外の戦闘はおまけ扱いにする。
・低レベルでも工夫次第でボス攻略できるようにする。


こういったところは、面白いゲームにはしっかり盛り込まれているように思います。クソゲー化してるものもありますけど。(個人的には、修行は強制されたくない)



ランダムエンカウントシンボルエンカウントの特徴から、デメリットとその対処法を考えてみました。


次は、それぞれのシステムを更に面白く盛り上げれそうな工夫を考えてみましょう。


ランダムエンカウントでは、天気時間のシステムと特に相性が良いように思います。


晴れの日の敵、雨の日の敵、霧が出ているときの敵、昼の敵、夜の敵・・・こういった状況に合わせた出現シートのようなものを作成し、それぞれの状況に合わせて遭遇する敵や割合を変えていく

こうすることで、夜行性のモンスターを表現できたり、生息地域を表現できたり、世界観をよりよく彩ることができるようになります。


また、レアモンスターを設けることで、意図的に修行を促すこともできます。レアモンと出会いたい(狩りたい)がために、より多くのエンカウントを発生させてくれるかもしれません。この場合は、普通のザコ敵は逃げるよりも倒す方が楽になるような設定にしておくと良いでしょう。


ランダムエンカウントの場合には、ある程度の戦闘回数が担保されるため、何かしらの回数(倒した数、逃げた回数など)を利用したシステムと相性が良いです。最低限の質を確保しつつ、ユーザーが頑張れば頑張るほど強くなる良いシステムです。


ドラクエの”ニフラム””くちぶえ”みたいなプラグインがあっても面白いかもしれませんね。




一方、シンボルエンカウントではどうでしょうか。

シンボルエンカウントの場合は、アクション・パズル系の要素を絡めると面白くなります。


パズルによって敵の進路を邪魔したり、
マップ上で使える飛び道具などで動きを止めてみたり

先制攻撃のシステムも導入されていることが多いですね。直感的に、どうすれば先制攻撃が発生するかが分かりやすい。



敵と追いかけっこをするのもシンボルエンカウントの特徴ですので、移動速度を操作するシステムは、シンボルエンカウントならではの使い道でしょう。

(ランダムエンカウントでも、移動速度を上げた分エンカウントにかかる歩数を増やすように設定できると、ストレスが軽減されます)


シンボルが多いゲームデザインの場合には、敵を一掃できるようなものがあると面白いかもしれません。わざと挑発して集めてドカンとやっつける。無双みたいです。

これに、経験値を振り分けられるシステムと組み合わせて、マップ上で倒すと経験値がためられ、それをメニュー画面で任意に振り分ける、といったのも面白そうですね。だれか、プラグイン作ってください(笑)





以上が、私がエンカウントシステムについて思ったところです。どちらのシステムも、面白くできそうな工夫はいっぱいあります。


あとは、作る側の好みといったところでしょうか。

どんなものにも一長一短があり、それぞれが必要に応じて発明されたものです。その特徴に優劣をつけるのではなく、それをどのように活かすことができるか。

それが、クリエーターの腕の見せどころだと思います。






ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

ゲーム制作日記<19> シンボルエンカウント

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。



今回ご紹介するのは、シンボルエンカウントです。


以前紹介した無限ミミックランダム出現システムを応用してみました。


ただまあ、シンボルエンカウント自体は、結構いろんなところでプラグインが作られているので・・・

探せば、いくつか出てきます。うん。


しかし、普通のイベントでも、やろうと思えばできてしまいます。

というか、シンボルエンカウントの基礎は自分で作ってみた方が良いです。

シンボルエンカウントのプラグインを導入しても、案外、思った通りに動かせなかったりするもんです。

そんな時に、基本的な仕組みが理解できてないと、困ることが多々あったりします。





それでは、今回のシステムでの仕様を紹介します。

指定されたリージョン(範囲)にランダムで出現。
倒されても時間がたてば再出現。
プレイヤー、他イベントの上に重なって出現することはありません。


追って来たりなんだりの処理はないので、やっぱり、プラグインの方が便利だったりします(笑)というか、これの仕様は出現処理だけですし。

ただ、出現に関しての操作がないプラグインもあります(そっちの方が多い?)ので、今回の記事は、そういったものと組み合わせるのに適した内容だと思います。



イベント : シンボルエンカウント
tc18-8.png


まず、戦闘とその後の処理に関する内容は1ページ目に記載しています。


内容は、変数トループIDを指定し、そのトループと戦闘処理を行います。

勝った時には消滅演出を行い、イベントを消去するためにセルフスイッチAをONにします。逃げた時には、待機演出を行います。

プラグインコマンドは気にしないでください。ただの演出です。


コモンイベント : 待機演出
tc18-5.png


コモンイベント : 消滅演出
tc18-6.png


セルフスイッチAがONになると、出現の処理に移行します。


イベント : 出現処理(2ページ目)
tc18-1.png
tc18-2.png
tc18-3.png
☆マークからが続きです)


出現処理に関しては、大まかにはゲーム制作日記<18> 無限ミミックと同じですので、今回は変更点だけ書きますね。


追加したところは、緑の枠で囲った部分です。


tc18-9.png

tc18-10.png


無限ミミックでは指定したリージョンIDを見つけたら、すぐにその場所に移動させていました。しかし、今回はイベントが乗っているかどうかの判定も加えています。

指定リージョンIDの位置にあるイベントIDを読み込み、条件分岐を組みます。この時、イベントIDが0以外なら何かしらのイベントがそこにいることになります。

その処理が、2つ目の緑枠”それ以外”の処理で、リージョンIDを再設定しています。


イベントIDが0だった場合にはイベントが居ない状態を表しますので、次に、プレイヤーがリージョンに乗っているかどうかの判定を行います。

プレイヤーの位置情報を取得し、プレイヤー位置XとYが一致する場合には、ラベルジャンプリージョン再設定(イベントがいる場合の処理)に飛ばします。

どちらかが不一致の場合には、その場所にはプレイヤーも居ないことになるので、ここでようやくシンボルエンカウントを移動させる処理が働きます。



以上が、今回のシンボルエンカウントの内容です。


プレイヤーの発見などの処理もやろうと思えばできるのでしょうが、もうそこまでやるくらいなら、プラグイン導入の方が早かったりします(´-∀-`;)


ただザコ敵がウロウロしているだけで良い程度のシンボルエンカウントでは、この程度で良いと思います。


私のゲームでは、ほんとにこの程度で十分。というか、敵に追いかけまわされるとか、迷惑なのでいらないです(笑)


ちょっと、シンボルエンカウントには思うところがありますので、次回書きますね。





ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村

ゲーム制作日記<18> 無限ミミック

op.png



みなさん、こんばんは。
ネコタです。



今回も恒例の『 コモンイベントで作るちょっとしたシステム 』 のご紹介。



今回紹介するのは、名付けて無限ミミックです。


それでは、今回のシステムがどのような挙動をするのか見てみましょう。


tc17-10.png


しばらく待ちます。


tc17-11.png


すると、宝箱が現れました。


tc17-12.png


タイトルからお察しのとおり、宝箱の中身はミミックです。

普通のミミックならここで終わりですが、このシステムには続きがあります。


tc17-13.png


倒されたミミックは、消えてしまいました。


tc17-14.png


しかし、時間が経つと別な場所に勝手に出現します。


tc17-15.png


開けてみたら、やっぱりミミックでした。



このように、倒しても倒しても、別な場所にランダムで現れるミミックです。


普通、ミミックというとモンスターとの戦闘がある罠付きの『宝箱』という印象ですが・・・・・・

この手のミミックの場合は逆で、ちょっと特別なアイテムが手に入るおまけつきの『モンスター』という印象になります。

モンスターなので、中身が必要ないならスルーすればいいんです。

もっとも、出現場所や一度通った場所を覚えていないと、普通の宝箱と勘違いしてしまうでしょう。


こっちの方が、よりミミックらしいと思いませんか?


個人的には、こっちのミミックの方が素敵なので、作ってみたんです。
敵だけに(笑)




それでは。
まずは、必要な物の確認から。


【必須】
リージョン ×1~20個程度(好みの範囲になります)
変数 ×5


【推奨】
コモンイベント ×2




では、準備に入りましょう。


今回のリージョン配置は、このようになっていました。


tc17-4.png


仕組みとしては、このリージョン1~10の中から1か所を選択し、そこに宝箱を出現させるという仕掛けになります。


最初に、出現するリージョン出現時間を設定しておきます。


コモンイベント : 出現リージョン設定
tc17-8.png


今回は出現リージョンの初期設定を乱数1~10に設定しました。



コモンイベント : 出現時間設定
tc17-9.png


今回は100に設定していますが、実際に出現する時間は100+αになります。



これらはコモンイベントでなくても構いませんが、デフォルト設定としてコモンイベントを使って設定しておくと便利です。

テストをしたときに微調整が必要となった場合、一括で修正できた方が便利ですから。



次に、現在プレイヤーがいるマップの大きさを取得します。


コモンイベント : マップの範囲を取得
tc17-5.png


変数の操作 : マップの大きさを取得
tc17-6.png

tc17-7.png


ちょっとだけ、スクリプトを勉強しました。
この通りに書き込めば、マップの大きさを取得できます。

マップの座標は(0,0)から始まるため、それぞれ$gameMap.width()から-1、$gameMap.height()から-1しています。

これもコモンイベントにする必要はありませんし、特に修正の必要もないものですが。

マップの大きさを取得するために毎回書き込む必要があるため、私はコモンイベントにしているだけです。



以上のコモンイベントを、マップに入った瞬間にスタートイベントとして起動させておきます。


さて、これで準備は完了です。
それでは、イベントの中身をみてみましょう。


イベント : ミミック : 1ページ目
tc17-1.png
tc17-2.png
マークからが続きです)


イベント : ミミック : 2ページ目
tc17-3.png



宝箱としての仕様は、2ページ目に書き込みます。
今回はミミックですというアピールだけなので、文章だけ。


イベントの出現に関してが1ページ目の内容となります。


内容の概要は、マップの先頭あるいはランダムの位置から順にリージョンIDを読み取って、指定したリージョンIDが見つかったら、その場所にこのイベントを移動させます。



まず、指定位置の情報取得で、( 変数出現位置X , 変数出現位置Y )のリージョンIDを読み込みます。

これらの変数は、初期状態では(0,0)です。



次に、出現時間が、設定した時間以上の時という条件分岐を組みます。
そして、先ほど取得したリージョンIDが、設定したリージョンIDと一致した時という条件分岐を組みます。


これらの条件を満たしたときに、以下の内容を起動させます。

このイベントを、リージョンIDを設定した位置に移動する。
向きを下向きにする。(追記可能)
次回出現予定地を再設定する。
カウントした時間をにリセットする。
スイッチをONにして、イベントを起動する。



次にある条件分岐は、出現時間までに繰り返す内容となります。
ここの内容で、規定した出現時間までカウントしています。


まず、マップのX軸の範囲変数出現位置Xの値が一致しない場合の条件分岐を組みます。

ちなみに、マップ範囲X変数出現位置Xが一致する場合というのは、変数出現位置Xがマップ右端のX座標と同値である場合を指します。

それ以外の時は、まだ右端まで変数が到達していないため、値を+1して右へ進めます。そして、変数出現時間を1カウント進めます。


出現位置Xがマップ右端まで到達した場合は、に戻します。これで、左端に数値が帰ってきます。時間も1カウント進めておきます。

同時に、今度はマップの下端にいるかを見ていきます。
これが、出現位置Y≠マップY範囲という条件分岐になります。

Y座標についても同様に、下端に到達していない場合はつ下げ、到達したらに戻します。


最後にウエイトを入れることで、出現時間に到達するまでのフレーム時間をある程度操作することができます。

ウエイト数 × マップの横幅 × マップの縦幅 ±α

これが、出現までの時間になります。



内容としては以上です。

これらの操作により、左から右へ順番にリージョンIDを読み込んで、指定リージョンが無ければ1段下に降りて、また左から右へ・・・・・・右下に到達したら、再度左上から順番に見ていく、という操作を永遠と繰り返して目的のリージョンを探します。


PCの環境にもよるかもしれませんが、私のPCでは、ウエイトを入れずにこの操作を50マス行うのに要した時間が1秒かかるかどうかくらい。大体、1マス0.5~1フレームくらいかもしれません。

マップがあまりにも広いと、それだけ時間がかかります。
なので、正確かつ細かい時間操作はちょっと難しいです。


あと、欠点といえば、リージョンIDを結構食ってしまうことです。

それと、場合によっては前回のゲーム制作日記<17> リージョン階層と併せられない部分が出てきます。

リージョンIDをエリアと同一にすれば、エリアの左上端に出現することになります。また、エリア内にリージョンを設定すると、そのマスだけ別エリアとなり不都合が生じるかもしれません。




以上が、今回のシステムの内容でした。

今回は無限ミミックという使い方を紹介しましたが、このシステムにはいくつか応用がありそうです。




ではでは、今日はこの辺で。
ネコタでした。





↓お役に立ちましたら、クリックをお願いします↓
にほんブログ村 ゲームブログへ
にほんブログ村

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村

ブログランキング・にほんブログ村へ
にほんブログ村
プロフィール

猫民のんたん

Author:猫民のんたん

ネコタ:ゲーム作りが趣味の薬剤師。本職とゲーム作りの2足の草鞋を履きこなそうと日々奮闘。

毎週曜日と曜日or曜日に更新予定。


ミノン:ゲーム作り初心者で1児の母。前職はSE/PG。子育てをしながらゲーム作りを行おうと、日々奮闘中。

毎週曜日にブログ更新予定♪

最新記事
最新コメント
月別アーカイブ
カテゴリ
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。