I Wanna Maker [日本語版] 使い方講座 -螺子と針-

探したい記事は目次から探すと楽です。

イベント制作:セーブ以外のオブジェクトをセーブポイントにする

☆ I wanna Makerに関するその他記事は目次からご覧ください。

☆イベント作成の基本はコチラ

-------------------------------------------

☆セーブ以外のオブジェクトをセーブポイントにする

今回はセーブ以外のオブジェクトをセーブポイントにしてみます。(厳密には"セーブポイントに見立てる"形となります。)

 
どんなオブジェクトでもセーブにすることは可能ですが、主に街灯やキノコといったキッド君が重なることのできる背景系素材が適しているかと思われます。この方法を使えば空中セーブ、遠隔セーブも可能です。
 
場合によっては下記の方法よりも「セーブに見立てたいオブジェクトの後ろのレイヤーに、セーブのサイズを小さくして隠しておく」という方法の方が圧倒的に簡単です。
(※この記事はレイヤー機能実装前に書いたもの)
 
今回は"キノコ"をセーブポイントにしてみます。
☆使用するオブジェクト☆
・セーブ

・キャノン

・プレイヤートリガー

・オブジェクトアクティベーター

・キノコ

 
【イベントの作り方】
キノコとキッド君が少しでも重なっている時にキノコにショットすることでセーブができるようにしていきます。(つまり通常の黄色いセーブと同じ仕様)
 
1.オブジェクトを設置、プロパティを設定する
①キノコ、プレイヤートリガー
セーブポイントにしたい場所に重ねて設置します。
今回は"キノコとキッド君が少しでも重なっている時にキノコにショットするとセーブができる"状態にするわけですが、重なっているという判定はキノコではなくプレイヤートリガーで行います。
そのため、キノコとプレイヤートリガーは同じくらいの大きさにしてください。
※個人的には若干プレイヤートリガーの方が大きいかな?くらいがベスト。ちなみに上の画像ではどちらもサイズ1に設定しています。
 
プレイヤートリガーは連続作動する&非表示にする必要があります。
そのためプロパティの”1回のみ動作"と"表示"のチェックを外してください。

 
トリガーのIDは他に設定しているイベントと被りさえしていなければ好きなものに設定して構いません。今回は"0"としておきます。
 
☆セーブにしたい位置が複数ある場合はその分設置してください。トリガーのIDを変える必要はありません。

 
②セーブ、キャノン、オブジェクトアクティベーター
キャノンを設置します。自身の管理しやすい場所であればどこでも構いません。
プロパティにてキャノンのスロット数を"2"に設定し、セーブ、オブジェクトアクティベーターを格納します。
※キャノンの表示設定はプレイヤーから見える位置に設置する場合は必ず非表示にしてください。

 

セーブ、オブジェクトアクティベーターのプロパティ設定は以下の通りです。
・オブジェクトアクティベーター
連続作動する&非表示にする必要があります。
”1回のみ動作"と"表示"のチェックを外してください。
 
☆大きさは必ず1以上に設定して下さい。
 
・セーブ
→大きさを0.2にしてください。(直接入力が面倒であれば0.25(マウス操作で設定できる最小値)でも構いません。とりあえずプレイヤーから見て目立たない大きさであればOKです。)
 
☆キャノンはセーブの数がいくつであろうと1つのみの設置となります。
 
 
2.イベントを設定する
セーブ、オブジェクトアクティベーター、キャノンにのみ設定します。
 
◆セーブ
2つのイベントを設定します。
・キャノンから発射後にプレイヤーの位置に移動するイベント
・発射後すぐ(0.02秒後)に消滅するイベント
の2つです。
 
------------------------
・キャノンから発射後にプレイヤーの位置に移動するイベント
イベント発生条件:"時間による制御内"の"オブジェクト出現時"
 
アクション:"移動"内の"プレイヤーの位置に移動"
→スピードは"5000"、追尾にチェックを入れる
------------------------
・発射後すぐ(0.02秒後)に消滅するイベント
イベント発生条件:"時間による制御内"の"一定間隔で動作"
 
→フレーム数は"1"、オフセットは"1"
アクション:"消滅+衝突"内の"消滅"
------------------------
 
※スピードを5000にしておけば、消滅するまでの0.02秒間のうちにプレイヤーの位置に移動することが可能です。
 
 
オブジェクトアクティベーター
3つのイベントを設定します。
・キャノンから発射後にプレイヤーの位置に移動するイベント
・発射後すぐ(0.02秒後)に消滅するイベント
・ショットが当たったらトリガーが作動するイベント
の3つです。
 
※1、2つ目のイベントはセーブに入れたものと同様です。
------------------------
・キャノンから発射後にプレイヤーの位置に移動するイベント
イベント発生条件:"時間による制御内"の"オブジェクト出現時"
 
アクション:"移動"内の"プレイヤーの位置に移動"
→スピードは"5000"、追尾にチェックを入れる
------------------------
・発射後すぐ(0.02秒後)に消滅するイベント
イベント発生条件:"時間による制御内"の"一定間隔で動作"
→フレーム数は"1"、オフセットは"1"
 
アクション:"消滅+衝突"内の"消滅"
------------------------
・ショットが当たったらトリガーが作動するイベント
イベント発生条件:"ショット/剣"内の"ショットが当たった時"
 
アクション:"トリガー"内の"トリガーを作動"
→トリガーのIDは他に設定しているイベントと被りさえしていなければ好きなものに設定して構いません。今回は"1"としておきます。
------------------------

 
◆キャノン
3つのイベントを設定します。
・トリガー作動で発射するイベント
・別のトリガー作動で当たり判定をオフにし、タイマーを設定するイベント
・タイマー作動で当たり判定がオンになるイベント
の3つです。
 
------------------------
・トリガー作動で発射するイベント
イベント発生条件:"トリガー+アクティベーター"内の"トリガーが作動したとき"
→トリガーのIDはキノコに重ねて設置したプレイヤートリガーと同様のID。今回は"0"。
 
アクション:"オブジェクト限定の動作"内の"発射"
アクション:"オブジェクト限定の動作"内の"発射"
※記載ミスではありません、2つの発射を設定してください。これでトリガーが作動するとセーブ、オブジェクトアクティベーターの2つを同時に発射する状態になります。
------------------------
・別のトリガー作動で当たり判定をオフにし、タイマーを設定するイベント
イベント発生条件:"トリガー+アクティベーター"内の"トリガーが作動したとき"
→トリガーのIDはオブジェクトアクティベーターにショットが当たった時に作動するように設定したIDを入れます。今回は"1"。
 
アクション:"消滅+衝突"内の"当たり判定の切り替え"
→オフ
 
アクション:"タイマー"内の"タイマーを設定"
→フレーム数25、タイマーの数値は"0"
※フレーム数が25なので0.5秒のタイマーになっています。
------------------------
・タイマー作動で当たり判定がオンになるイベント
イベント発生条件:"時間による制御内"の"タイマー制御"
→タイマーの数値は先ほど設定した"0"
 
アクション:"消滅+衝突"内の"当たり判定の切り替え"
→オフ
------------------------

全ての設定はこれで完了です。これでキノコをセーブにすることができました。
どういう状態になっているのかまとめると
 
・プレイヤートリガー(キノコ)にキッド君が重なっている間、キャノンからセーブとオブジェクトアクティベーターが発射され続けている。
 
・セーブとオブジェクトアクティベーターはキッド君に重なるが、一瞬で消滅する。(キッド君に重なっては消滅、ただしトリガーが作動し続けている間は延々とセーブとオブジェクトアクティベーターが発射され続けているので、実質常にセーブ、オブジェクトアクティベーターはキッド君と重なっている。)
※削除するようにしておかないと、キッド君がセーブ位置から外れた場合にもセーブできるようになってしまいます。
 
・ショットを行うと、重なっているセーブに当たりその場所でセーブしている状態になる。また、オブジェクトアクティベーターにもショットが当たっているため、設定したトリガーが作動し、0.5秒間だけキャノンの当たり判定がオフになる。(オフになると発射もとまる)
※オフにする理由ですが、他の方のイベントを参考にしているため明確な理由はわかりません。おそらくですが通常のセーブと違いインターバルが発生しない状態でセーブできてしまうので、セーブ時に微妙なズレが生じてしまうことや重くなるのを防ぐ為かと思われます。とりあえずオフにしていた方が良いかと。
 
 
【注意しておきたいこと】
プレイヤーに何の告知もないと、キノコがセーブになっているということはわかりません。
何らかの形で「このコースはこれがセーブ」とわかるようにしておくことをお勧めします。

コース投稿の概要欄に記載しても良いかとは思いますが、多分読まない人もいるので個人的にお勧めしません。
 
 
【空中セーブ、遠隔セーブ】
セーブの平行線上にプレイヤートリガーを設置すれば、空中セーブや遠隔セーブが可能になります。
※ショットをしたその場でセーブとなってしまうため厳密には遠隔セーブ、空中セーブではありませんが現状この方法しかありません。

こちらもプレイヤーに対して告知やヒントの提示があったほうがいいかも。

---