FC2ブログ

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

op.png



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



いやぁ、暑いですね。というかもう、熱いですね。
溶けそう。

そんな中、なかなか更新できない日が続いておりますが、今日は暇を見つけて更新。


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


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

シンボルエンカウントは過去にも作ってみました(http://nekotaminontan.blog.fc2.com/blog-entry-31.html)が、結構複雑な内容だったと思います。

そこで、今回はもっと機能を簡素に、そして手軽にシンボルエンカウントを導入できる方法は無いかを模索してみました。




仕様


今回紹介するシンボルエンカウントの特徴ですが、以下の機能を備えています。

・単純にプレイヤーへ近づきます。触れたら戦闘開始です。

・倒したら、その場で30フレームかけて消えます。300フレーム(5秒)後に、同じところに出現します。出現時には音が出ます。

・逃走した場合、その場で180フレーム(3秒)半透明になって停止します。3秒経つと元に戻って索敵を開始します。

・敵はプレイヤーの平均レベルによって自動的に選択されます。シンボルの見た目とはあまり関係ありません。その代わり、コピペだけでどこのダンジョンにも配置が可能です。


(拡張機能)
・索敵ページ、戦闘ページ、勝利後処理ページ、逃走後処理ページの4つに分けて作成しているため、それぞれのページで改変可能です。やろうと思えば、索敵ページを編集したり、移動を制御するイベントを設置することで高度な索敵を可能にすることもできます。

・コモンイベントの内容を編集することで、もっと細かなグループ選択を設定できます。

・コモンイベントの内容を編集することで、出現時や消失時の演出を設定できます。


今回の仕様は以上となります。
一見それなりの機能がありそうですが、内容は大分簡単です。


それでは、まずは準備するものを確認していきましょう。



準備するもの


【必須】
・イベント
・コモンイベント ×4
・変数 ×3(+1)


【推奨】
・創作工房春巻様のデータベースサンプル・ネオ


今回のブログ公開にあたり、創作工房春巻様よりデータベースサンプル・ネオの紹介許可を戴いております。このデータベースサンプル・ネオですが、アクターやエネミーデータ、アイテムや装備、マップデータといった基本的なデータベースが整っており、中編規模の作品をすぐに作れるように用意してあるという優れものです。

そして、今回のシンボルエンカウント作成は、これをそのまま使っておりますので、真似していただければすぐにシンボルエンカウントを導入できるようになっております。

ぜひ、併せてご利用くださいませ。



作り方


それでは、イベントの内容と作り方を説明していきます。まずは、コモンイベントから作っていきます。


コモンイベント
tc39-006.png


コモンイベントは全部で4つ。それぞれの役割ですが、

・【戦闘】トループ決定・・・敵のIDを振り分ける。
・【戦闘】平均レベル算出・・・パーティの平均レベルを算出する。
・【エフェクト】ゆっくり消失・・・イベントの消失演出の処理。
・【エフェクト】ゆっくり出現・・・イベントの復活演出の処理。

となっています。

では、順番に説明していきます。


コモン:【戦闘】トループ決定

≪実行内容≫
条件分岐:【仲間】平均レベル ≤ 4
変数の操作:#0011 【戦闘】トループID = 乱数 2..7
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 8
変数の操作:#0011 【戦闘】トループID = 乱数 11..16
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 12
変数の操作:#0011 【戦闘】トループID = 乱数 20..25
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 16
変数の操作:#0011 【戦闘】トループID = 乱数 29..34
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 20
変数の操作:#0011 【戦闘】トループID = 乱数 38..43
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 24
変数の操作:#0011 【戦闘】トループID = 乱数 47..52
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 28
変数の操作:#0011 【戦闘】トループID = 乱数 56..59
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 32
変数の操作:#0011 【戦闘】トループID = 乱数 65..70
ラベルジャンプ:①

分岐終了
条件分岐:【仲間】平均レベル ≤ 36
変数の操作:#0011 【戦闘】トループID = 乱数 74..79
ラベルジャンプ:①

分岐終了
注釈:パーティ平均レベルが 37 以上の時
変数の操作:#0011 【戦闘】トループID = 乱数 83..88
ラベル:①


今回、使用しております創作工房春巻様のデータベースサンプル・ネオにおける敵グループデータでは、レベルごとにグループ作成されております。上記コモンイベントの内容はそれに合わせてIDの振り分けを行っています。

内容ですが、算出した平均レベルによって敵グループIDをランダムに選択しています。なお、敵グループにある「ミミック」は宝箱の罠として利用することを考慮して選択肢から除外させていただいてます(ID:60-61)。



コモン:【戦闘】平均レベル算出

≪実行内容≫
変数の操作:#0012 【仲間】レベル = 0
変数の操作:#0013 【仲間】人数 = 0
条件分岐:ハロルドがパーティにいる
変数の操作:#0012 【仲間】レベル += ハロルドのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:アレンがパーティにいる
変数の操作:#0012 【仲間】レベル += アレンのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:テレーゼがパーティにいる
変数の操作:#0012 【仲間】レベル += テレーゼのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:リョウがパーティにいる
変数の操作:#0012 【仲間】レベル += リョウのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:ヴァイスがパーティにいる
変数の操作:#0012 【仲間】レベル += ヴァイスのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:フレデリックがパーティにいる
変数の操作:#0012 【仲間】レベル += フレデリックのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:エリザがパーティにいる
変数の操作:#0012 【仲間】レベル += エリザのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:セリーヌがパーティにいる
変数の操作:#0012 【仲間】レベル += セリーヌのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:マーシャがパーティにいる
変数の操作:#0012 【仲間】レベル += マーシャのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:ルキウスがパーティにいる
変数の操作:#0012 【仲間】レベル += ルキウスのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:ウェンディがパーティにいる
変数の操作:#0012 【仲間】レベル += ウェンディのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:ノエルがパーティにいる
変数の操作:#0012 【仲間】レベル += ノエルのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:イリアがパーティにいる
変数の操作:#0012 【仲間】レベル += イリアのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:ダグラスがパーティにいる
変数の操作:#0012 【仲間】レベル += ダグラスのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:アヤメがパーティにいる
変数の操作:#0012 【仲間】レベル += アヤメのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:レオナがパーティにいる
変数の操作:#0012 【仲間】レベル += レオナのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:オリバーがパーティにいる
変数の操作:#0012 【仲間】レベル += オリバーのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:ピーターがパーティにいる
変数の操作:#0012 【仲間】レベル += ピーターのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
条件分岐:アニエスがパーティにいる
変数の操作:#0012 【仲間】レベル += アニエスのレベル
変数の操作:#0013 【仲間】人数 += 1

分岐終了
変数の操作:#0012 【仲間】レベル /= 【仲間】人数
変数の操作:#0014 【仲間】平均レベル = 【仲間】レベル


今回使用しております創作工房春巻様のデータベースサンプル・ネオのアクター全員の条件分岐を記載しています。これにより、作中でどのアクターがパーティーに居ても、現時点でのパーティーにおける平均レベルを算出できるように作っております。なので、作中で全員を使うことが無くとも、とりあえずこの通りに内容を入れておけば、勝手に計算してくれます。

最初の変数操作で、変数の内容を0にリセットするのを忘れずに。

あと、最後に平均レベルを別の変数にしていますが、変数【仲間】レベルをそのまま使用しても構いません。その場合は、【戦闘】トループ決定の条件分岐で使う変数も修正してください。

一応、ここでは他のイベントなどでレベル関連を扱うことがあるかもしれないと思い、念のため変数を分けているだけです。


コモン:【エフェクト】ゆっくり消失

≪実行内容≫
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:252
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:244
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:231
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:213
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:190
移動ルートの設定:◇すり抜けON
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:162
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:129
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:91
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:48
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:0


イベントを30フレームかけて、ゆっくりと消失させていく演出用コモンイベントです。好みに合わせて編集して構いません。

さりげなく、「すり抜けON」が入っておりますが、これはイベントの組み方次第ではなくても大丈夫です。一応、透過度が低いときにすり抜けられると変かな、と思って途中でいれてるだけだったりします。



コモン:【エフェクト】ゆっくり出現

≪実行内容≫
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇不透明度:3
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:11
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:24
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:42
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:65
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:93
移動ルートの設定:◇すり抜けOFF
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:126
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:164
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:207
移動ルートの設定:◇ウェイト:3フレーム
移動ルートの設定:◇不透明度:255


イベントを30フレームかけてゆっくり出現させる演出用コモンイベントです。好みに合わせて編集して構いません。

これも、さりげなく「すり抜けOFF」が入っていますが、透明度が高いうちに通れなくなると不自然かなと思って途中に挟んでいるだけです。


コモンイベントの説明は、以上になります。



それでは、シンボルエンカウントの作り方に入りましょう。


今回のシンボルエンカウントは、全部で4ページ構成です。


EV:1ページ目
tc39-001.png

<トリガー>
イベントからの接触

<実行内容>
注釈:索敵ページ
セルフスイッチの操作:A = ON


任意の画像に設定し、<トリガー>をイベントからの接触に変えておきます。

今回の自律移動タイプは「近づく」にしております。頻度や速度は初期設定なので、何となくプレイヤーに向かってノロノロ歩いてきます。ここを「ランダム」にすると、ただウロウロするだけになります。ここは、好みで変更してください。

プレイヤーに接触すると、イベントの内容が走りセルフスイッチAをONにします。

セルフスイッチAがONになると、戦闘用のページに切り替わります。



EV:2ページ目
tc39-009.png

<トリガー>
自動実行

<実行内容>
注釈:戦闘処理ページ
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇プレイヤーの方を向く
コモンイベント:【戦闘】平均レベル算出
コモンイベント:【戦闘】トループ決定
戦闘の処理:{【戦闘】トループID}
勝ったとき
SEの演奏:Collapse1 (90, 100, 0)
コモンイベント:【エフェクト】ゆっくり消失
セルフスイッチの操作:B = ON

逃げたとき
セルフスイッチの操作:C = ON

分岐終了


イベントがプレイヤーに接触することで切り替わるページです。ここでは、戦闘する敵グループを決定し、戦闘を開始します。

最初に向き変更の操作を入れていますが、稀にバグで、チラッと接触した後に元の方向を向きなおすことがあるので、念のためこのコマンドを入れておいてます。

内容は、最初に作成したコモンイベントでパーティの平均レベルを算出、その後に戦闘グループのIDを決定して、イベントコマンドで戦闘を開始します。雑魚戦闘を想定していますので、基本的には下の画像のように、逃走可にチェックを入れておきます。

tc39-010.png

この時、敗北可にチェックを入れておけば、負けても全滅しないでイベントを起こす仕様にできます。今回の仕様では、敗北可にチェックを入れていませんので、負けたらゲームオーバーとなります。

あとは、それぞれ勝った時と逃走した時で演出を入れ、セルフスイッチで分岐させます。

勝ったときには適当なSEを入れ、最初に作成した演出用コモンイベントを入れた後にセルフスイッチBをONにして、復活待機ページに移行させます。なお、消失演出はこのページに記述してください。理由は後述します。


逃走した時は、そのままセルフスイッチCをONにします。逃走した場合の演出もありますが、今回はページ切り替え後に演出を入れております。理由は後述します。


EV:3ページ目
tc39-008.png

<トリガー>
並列処理

<実行内容>
注釈:戦闘勝利後ページ
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇不透明度:0
移動ルートの設定:◇すり抜けON
ウェイト:300フレーム
SEの演奏:Darkness2 (50, 100, 0)
コモンイベント:【エフェクト】ゆっくり出現
セルフスイッチの操作:A = OFF
セルフスイッチの操作:B = OFF


戦闘勝利後のページです。ここでは、復活までウエイトで待機させ、時間になったら効果音と共に現れるようにしています。

内容としては、まず不透明度を0にし、すり抜けONをかけておきます。

その理由ですが、この待機ページの状態でプレイヤーがマップ移動を行った場合を想定しなければならないからです。

ウエイト中にプレイヤーがマップ移動を行い再び戻ってきた時、イベントは待機状態から開始されることとなります。ここの最初に消失演出を入れている場合、何もしていないのに消失演出が開始されてしまいます。また、最初に不透明度0+すり抜けON処理をしないと待機中のシンボルエンカウントが突っ立っていることになります。

なので、上記の不透明度0+すり抜けON処理を忘れずに入れておきましょう。

一応、イベントが開始した瞬間はチラッと居ることにはなるのですが、並列処理なのでフェードインしている間に消えてくれると思います。もし、この不具合が不安であれば、初期位置を画面外になるように調節しておくと、一瞬で処理してくれることなのでチラッと見えることも無いでしょう。


で、その後の処理ですが、ここで入れるウエイトが再出現までの時間になります。プラグインなどで弄っていなければ60フレーム=1秒ですので、300フレーム=5秒となります。短いと思えばフレームを増やせばいいでしょうし、長いと思えば短くすることでインターバルを調節できます。

あとは、演出でSEとコモンイベントを入れています。上記のとおりに入力すれば、効果音と共にゆっくり出現してくれると思います。

最後に、セルフスイッチをOFFにして最初のページに戻してあげてください。



EV:4ページ目
tc39-004.png

<トリガー>
並列処理

<オプション>
向き固定
すり抜け

<実行内容>
注釈:逃走後ページ
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇不透明度:120
ウェイト:180フレーム
移動ルートの設定:このイベント (ウェイト)
移動ルートの設定:◇不透明度:255
セルフスイッチの操作:A = OFF
セルフスイッチの操作:C = OFF


逃走後に移行するページです。半透明の状態で3秒待機します。3秒後に、元の状態に戻って再度プレイヤーに向かってノロノロ歩き出します。

一応、すり抜け状態なので向き固定を入れなくても大丈夫だと思いますが、念のため入れてます。すり抜けなのに向きが変わると嫌なので。でも、忘れても困らないはず。

このページの最初に、半透明にする処理を入れていますが、これも先に述べた通り。この処理が入らないと、マップ移動後に戻って来たとき半透明になっていないためです。

今回は、逃走後のインターバルをウエイト180フレーム(=3秒)としていますが、これも調節していただいて構いません。あまり短いと、逃げたのに即戦闘となってしまって厄介なので、少なくとも60フレーム(1秒)はあった方が良いと思います。

あとは、時間になったら元の不透明度に戻して、セルフスイッチをOFFにし最初のページに戻してあげます。



以上、シンボルエンカウントの作り方でした。



終わりに


今回のシンボルエンカウントの作り方講座は、いかがでしたでしょうか。

一番大変なところは、戦闘グループIDの振り分けだけで、他は記述も少ないし、比較的簡単な仕様だと思います。

私は、こんな感じに、ただウロウロして倒したら一定時間で戻ってきてくれる程度のシンボルエンカウントで十分だと思っています。やろうと思えば、○マス以内に近づいてきたときに追いかけて――なんてこともできなくはないと思いますが。面倒くさいので、そういうのはいらない派です(笑)

ちなみに、複製するときはコピペするだけです。画像は適宜変えてください。今回の仕様だと、実際に戦うエネミーの画像とシンボルエンカウントの画像がリンクしていないため、マップの雰囲気に合わせた画像を使うだけです。

もし、ダンジョンやエネミーのタイプで画像を変えたい場合には、コモンイベントの【戦闘】トループ決定の内容を編集したり、複数の敵グループ選択用のコモンイベントを作り適宜内容を変更するなどすると良いでしょう。そこら辺は、好みの問題ですね。

ちなみに、敵グループをトループと呼んでいるのは、ツクールXPの名残だったりします(笑)
”隊”、”群れ”という意味らしいです。



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





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

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

ブログランキング・にほんブログ村へ
にほんブログ村
スポンサーサイト
プロフィール

猫民のんたん

Author:猫民のんたん

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

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

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

育児中のため活動休止中

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

この人とブロともになる

QRコード
QR