Unityの寺子屋 3日目

学習内容

  1. chap4:放置ゲームをクッキークリッカー系に変える
  2. chap5:横スクロールアクションゲームの作成
    • Rigidbody2Dのプロパティ
    • PhysicsMaterial2D
    • ゲームクリアの処理

1.chap4:放置ゲームをクッキークリッカー系に変える

OnApplicationPause関数:UnityEngineクラスの関数で、引数はbool型。アプリがバックグラウンド以降or復帰した時に呼び出される。
OnApplicationQuitというアプリが完全終了した際に呼び出される関数もあると野のこと(下記参考サイト参照)

以下参考サイト

chap4の内容はクッキークリッカー系に直すだけでした。
基本的なシステムは放置ゲームのものを流用すればできるようになっていたので、初めて出てきた関数だけメモがてら残しています。

2.chap5:横スクロールアクションの作成

chap5からは横スクロールアクションを作成していきます。
正直この章目当てで買ったくらい横スクロールアクションのゲームが作りたいと思っています。メトロイドが好きなので、メトロイドヴァニアなんかをそのうち作れたらいいなぁと思っております。

◇Rigidbody2Dのプロパティ

プロパティ説明
Body Typeその物体のタイプを、Dynamic、Kinematic、Staticから選択する。
Materialマテリアルを設定する。
Simulated物理演算と衝突判定のon/offを切り替える
Use Auto Massonにするとコライダーの形状から質量を自動的に検出する。
Mass質量のこと。(Use Auto Mass)をオフにしているときはここに密度を指定する。重い物体は動かす際にも止める際にも大きな力が必要になる。
Linear Drag移動の減衰値
Angular Drag回転動作の減衰値
Gravity Scale重力の影響度合。0にすると無重力状態を表現できる。
Collision Detectionほかのオブジェクトとの衝突検知の方法
Sleeping Modeプロセッサー負荷を抑えるためのオブジェクトのスリープ方法。
①Never Sleep、②Start Awake、③Start Asleepの三つがある。
①は常時動ける状態なので、負荷がたまりやすい。衝突すればスリープが解除されるため、たいていは初期設定の②で問題ない。
Interpolateスムージングの設定。処理の重さなどが原因で動きがぎこちなくなる時に利用する
Constraintsリジットボディーのモーション制限(移動/回転)。positionのx、yどちらかをonにすると縦or横にしか動かなくなる。rotationのzをonにすると回転しなくなる。

LinerDragとAngulerDragを調節することで粘り気のある液体のなかを動くような表現に使える。

Rigidbody2Dコンポーネントを利用してキャラクターの動作などをさせる場合には、FiedUpdate関数内で操作すると決められている。
これはFixedUpdate関数はUpdate関数と違い、固定フレームレートで動くため、動作環境依存でフレームレートが変わり、遅延してしまったり、不安定になることがないためである。

復習

velocity:Rigidbodyの速度ベクトルのこと。
enum:列挙型。列挙型で変数の宣言を行うときは「タグ名 変数名;」とする。

◇PhysicsMaterial2D

3Dグラフィクスなどでは物体の表面の質感の設定を指す。今回設定するのは物理エンジン用のPhysicsMaterial2Dでは物体が接した時の滑り具合を設定する摩擦と、衝突した時の跳ね返り度合を調整する弾性を設定できる。

復習
・Linecast関数:Physics2Dクラスのラインキャスタ機能の一種で線分上に特定のレイヤーに属するColliderが存在する(ヒットする)場合はtrueを返す。
Physics2D.Linecast(始点、終点、レイヤーマスク、トリガーも対象にするか)

ここではブロックや敵との衝突判定をおこなうために、ラインキャスター関数を用いている。キャラクタープレイヤーの足元を三角状に掘り下げるような判定領域を作っている。敵キャラがブロックにぶつかって移動方向を変える際にも、敵がブロックと衝突したかどうかを検出するために使っている。

・既習のゲーム外の判定について
OnTriggerEnter2D関数でプレイヤーがトリガーのコライダーに接したことを判別している。関数の引数は接触した相手のCollider2D型を参照する。

◇ゲームクリアの処理

ゲームクリアの処理は基本的にはゲームオーバー時と変わらない。
しかし、ゲームオーバーではプレイヤーは消していたが、今回はクリア時にプレイヤーを消さないため、ゴールのオブジェクトに触れ続けると接触判定が繰り返し発生してしまう。
そのため、クリアの演出(UIの表示など)+ ゴールオブジェクトとプレイヤーの衝突判定が消えるようにしなければいけない。

なんやかんやで、chap5時点のゲームはこちら

念願の横スクロールアクションの基礎が勉強できました!
やっていることは今までと同じですが、敵を踏む処理や敵の移動の処理の方法などの基本を学べました。
最近では、「あのゲームのあの敵はこうやれば実装できるのかな?」とか「あの動きはどう処理してるんだろう。」といった考えや疑問がたくさん湧いてきて、それを考える時間がとても楽しいと感じています。
次はプレイヤーや敵にアニメとSEなどの音楽、追加ステージなどをつけて完成です。
画面をスクロールさせるにはマップを広くしたり、カメラにプレイヤーを追従させたりする必要があります。
その辺についても勉強できるのかな?
一応今まで自分が勉強してきたことでどうにかなりそうな気もするので、この本が終わったら挑戦してみたいです。

この本はchap7がアプリ販売についての考え方になっているので、ゲーム作成に関する内容は次のchap6が最後になります。
正直、書く内容が陳腐すぎるだろうなと思いながら書いておりますが、どうでしょうか..?
chap6の記事は少し内容も薄くなる(chap6の内容が今までやってきた本の内容が見についていればできてしまうレベルだと思われる)ので、さらに書くことがなさそうなのが心配ですw
そんな感じではありますが、最後まで頑張ろうと思います!

それではこの辺で。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です