No.002 進捗状況08
みなさんこんにちは🌚
キングダムハーツ3やApex Legendsに最近はまっていてPS4の家庭内勢力がSwitchを上回ってきているブルーノです。PSの圧倒的なグラフィックは定期的にみたくなりますね。
では今回もオブジェクトを制作していきます。
移動するチェックポイント
今回はキャラが触れた時に消えるようないわゆるチェックポイントを作りたいと思います。イメージとしてはゼルダの伝説ブレスオブザワイルドの光の輪くぐりの感じですまず簡単に見た目だけ作ります。この中をくぐることにします。
そして今置いたオブジェクトたちにはデフォルトでコライダーがついていますが彼らにぶつかる必要はあまりないので取り除き、逆に空のオブジェクトに適当なコライダーを通過した判定のため追加しておきます。
大きさを変更し、Is Triggerにチェックをつけます。これで物理的な干渉をせずに当たり判定を行うことができます。
今回実装する感じとしては
- ただ触れた瞬間に消える。
- 座標を格納する変数を任意の数指定し、触れたら次の座標に現れる
という二つの方法を考えつきました。
後者はまんまゼルダのイメージですね。実装が簡単なのは間違いなく前者ですが、今回は両方作りたいと思います。
触れた瞬間に消える
これは簡単ですね。コライダーが当たりを感知したらDestroyするようにすればOKです。が、いきなりパッと消えると変なのでアニメーションでとても小さくしてから消します。
dreameaters5239.hatenablog.com
アニメーションの参考過去記事わかりにくいですが、0.3秒でちょっと大きくなり、0.5秒までで小さくなって消えるアニメーションです。こんな風にスクリプトを書いてみました。ついているAnimatorの取得とコライダー反応時にアニメーションを再生する動きのみとりあえず記述です。再生してみると
一応できたのですが、アニメーションがループ再生してしまいました。これでアニメーションの方はOKですが、まだオブジェクトを消す事と触れたことを知らせるフラグを実装することが残っています。というわけでスクリプトを改良します。
アニメーション後にオブジェクトを消す
簡単そうに思えましたが意外にネットに方法がなかったので、アニメーションウィンドウにあったこれを利用してみました。
アニメーション内でスクリプトのアクティブ化・非アクティブ化を操作できるみたいです。これでオブジェクトを消す下のスクリプトを有効化します。フラグについて
ゲームにおいてフラグというのは欠かせない存在ですよね。しかしこのフラグ、どういう風に実装するのがゲーム作りにおいて主流なのでしょうかね。独学なのでいまだによくわかりません。今回はこのCheckPointScriptの中でbool値を操作し、ゲームシステムのスクリプトでそれを検出するという風にしようと思います。これで検出できるはずです。記事が長くなるので今回はここまでにして次回移動する機能の実装を作りたいと思います。
キングダムハーツ3のシークレットムービー、気になる内容ばかりでしたねえ〜〜😄結局黒い箱とマスターオブマスターは出てきませんでしたが、次回で深く関わってきそうですよね。Verum Rexの存在も新しく今後に関わってくるような描写もあってせっかくゼアノートを倒したのにもう世界観が広がりまくりでソラたちの冒険は終わらなそうです。まだまだキンハーは楽しめるコンテンツとして続きそうで楽しみです😍