【Unity2D】モノを押したり引っ張ったりする仕組みの考え方
こんにちは。なおキーヌです。
ブログ毎日更新は316日目になります。
前回「【Unity2D】アニメーション遷移の調整」にてアニメーション遷移の調整を行いました。
この辺で製作がとまってしまっているので、今週は考え方をまとめていきます。
というのも今週いっぱいは現場ラストスパートなのでがっつりコーディングが出来そうにないので、
とりあえずやりたいことをどうやって行くかを考えていきましょう。
今回はUnity2Dでの何かを押す処理と引っ張る処理について考えてみます。
Unity2DでARPG作成、第8.2回目始めましょう。
モノを押すという処理について
2Dゼルダの伝説を例にあげていくと、モノを押すという行動は基本的に方向キーを押しっぱなしで実現できます。
そして押す状態になるには、何かに衝突しておいてなおかつ一定時間方向キーを押し続けることです。
これらの条件を満たしたら向いている方向の押すアニメーションに切り替えればOKですね。
後は押せるものならプレイヤーと一緒に進行方向に動かしたり、
押せないものだったら押しアニメーションだけを再生し続けたりといった感じです。
押すのはかなりシンプルなつくりですね。
押すものに重量を感じさせたい場合、触れた瞬間に動かすのではなく動かす速度をスローにして
引きずったような効果音を付ければ臨場感が増します。
モノを引っ張るという処理について
モノを押す処理は思ったよりも簡単ですが、引く場合はちょっと特殊になります。
ゼルダベースで考えると、引っ張りたいものの前でAボタンを押し掴む。
そして進行方向とは逆のキーを入力することによって引っ張りモーションに切り替えるというわけです。
これも押す処理同様重さを感じさせたりするのがベストですね。
モノを引っ張って動かすだけではなく、何かを引っ張りだしたりするときにも引くアクションは使えますね。
ゼルダだと絵画を引っ張ったらルピーがでたりしましたね。
ああいうギミックを作っておくとプレイヤーは怪しい箇所は引っ張ろうとするので、
ダンジョン攻略のチュートリアルとしても自然と組み込めます。
好きだったゲームを開発者目線でプレイしてみよう
最近ゼルダの伝説夢を見る島のリメイクを少しずつプレイしているのですが、
開発者目線になってプレイしています。
丁度私が作ろうとしているゲームの大きな影響となったゲームです。
当時はプレイヤーとして何回もプレイしました。
この歳になってからは開発者目線でプレイしてみると、色々な発見がありました。
任天堂のゲームによくあるのですが、ゲームプレイにチュートリアルが自然と組み込まれているのが本当に素晴らしいです。
いわゆるレベルデザインが計算されつくしているというわけですね。
今回の引っ張り処理とかも、ゼルダの伝説はゲームプレイのいたるところに組み込まれています。
最初のうちはご褒美が出たりするのでプレイヤーに自然と自らの意思でやらせます。
すると気付いたらその処理を使ってダンジョン攻略やボスを倒す手段になっていたりします。
ゼルダシリーズは、この作り込みがすごく上手で私は自然とハマってしまうことが多いです。
ただ、スカイウォードソードは運動不足過ぎて腕が付いていかず頓挫してしまいましたが面白いゲームではありました(笑)
実は私、いかにもチュートリアル!って感じの演出があると萎えてしまってすぐ投げてしまうようになりました。
ソシャゲや量産型MMOとかによくありがちですよね。
まぁ覚えることが多いから仕方ないと言っちゃ仕方ないのですが、
ゲームなんだからちゃんとゲームに組み込んでほしいですよね。
自分の作るゲームはザ・チュートリアルというものは作りたくはないですね。
ミニゲームとかの場合は仕方ないかもしれませんが、
本編は基本的にゲームにのめり込んでほしいのはゲームクリエイター共通の認識じゃないでしょうか?
プレイヤーを現実に帰すのはセーブ&ロードとリセットぐらいでいいですよね。
それでは。