まずは2D用のUnityちゃん&それらしくオブジェクトを少し配置して、MainカメラをHierarchyからUnityちゃんの下階層に合わせました。 Develop, さあこれからUnityちゃんの2Dアクションゲームを作っていくわけですが、まず覚えておきたいのが横スクロールアクション定番のプレイヤーの動きに合わせて横に動くカメラワークでしょう。, Skyboxとは空のレイアウトを見せるための背景です。デフォルトでも用意されていますが自分の用意してきたマテリアルに設定する事もできます。, カメラの設定で言う所のSkyboxとはカメラによって出力するGameビューにSkyboxを表示するか非表示にするかの切り替えとなります。, Solid Colorに設定すると背景が固定された一色になります。デフォルトでは「Baceground」の青色系になっています。, オブジェクトが重なっても表示させておきたいオブジェクトに設定します。この場合カメラ設定のDepthの値によって優先度が決まります。, 「Clear Flags」の設定がSkyboxまたは、Solid Colorになっている時に表示されます。色を設定するためのダイアログから背景色の色を自由に設定する事ができます。, カリングマスクのCull(ingで現在分詞) には摘む、間引くという意味があるので、各オブジェクトで設定したLayerごとに投影する、しないオブジェクトを仕分けるための設定です。, この画像はUnityちゃんに「Player」と上ブロックの固まりにそれぞれ「Block」というLayerを設定して、カリングマスクに「Player」「Block」のLayerを表示されるように設定しています。, それ以外のオブジェクトは初期値で「Default」Layerになっていて、「Default」は指定から外しているので表示されていません。, ただしカメラの表示から外れるというだけでオブジェクトのコライダーなどの物理的な処理は働いています。 レイヤーを作成し、カメラのレイヤーをSpriteClickに変更する。 今回はUnityを始めたばかりの人向けに、キャラクターの移動方法を覚えた次のステップとして2Dおよび3Dにおいてキャラクターにジャンプ動作をさせる機能の実装方法を紹介いたします。, ※本記事の操作キャラクターには「Unity-Chan(ユニティちゃん)」を使用しています。, 2D空間におけるキャラクターにジャンプをさせるための大まかなフローは下記になります。, 使用する主なコンポーネントはrigidbody,colliderの二つになります。, ・rigidbody:「力の計算(物体に働く重力や摩擦などの力の計算)」を行うコンポーネント, 上記のコンポーネントは、Add Component>Physics 3Dの項目にあります。, 2D用と3D用のものが用意されていますので、2D空間で使用する場合は、「2D」と付いている方を利用します。, 先ほど追加したコンポーネントによる力の計算により、キャラクターにジャンプをさせることになります。, スペースキーを押した時に、計算により求められた力を与えることでキャラクターがジャンプします。, これだけでは、キャラクターがスペースキーを押すたびにジャンプをしてしまいますので、地面に接地している時だけなどジャンプに制限をかけるスクリプトを追加する必要があります。, 3D空間でキャラクターをジャンプさせるフロー自体は、2Dと同様ですがジャンプ動作をさせる方法は3つあります。, キャラクターを操作するための関数がCharacterControllerになります。, CharacterControllerと違い、物理演算を使用してキャラクターを動かします。, 参考記事)【Unity】Rigidbodyを使用して重力・空気抵抗を発生させる方法, Update関数内で、transformを徐々に変化させることで、キャラクターが動いているように見せます。, 参考記事→)【Unity】Transformを使って3Dオブジェクトを移動させる方法, 今まで紹介した内容を組み合わせて実際に2D、3D空間でユニティちゃんにジャンプの動作をできるように実装をしていきましょう。, 事前準備として、テストに使用する下記2つのユニティちゃんのデジタルアセットデータをダウンロードしておきます。, 2Dユニティちゃんにジャンプをさせるので、テンプレートは「2D」を選択しておきます。, プロジェクト名称は自由で構いませんが今回は「UnityChan2D」としておきます。, File > Open Scenes > UnityChan2D.unitypackage, インポートが完了すると、プロジェクトウィンドウ内にあるAssetsに「UnityChan2D」が追加されます。, 今回はキャラクターとしてユニティちゃん、床となるマテリアルとして背景素材を利用します。, ユニティちゃんは、UnityChan2D >  Sprites にある「UnityChan_footwork_0」をドラッグ&ドロップして、ヒエラルキーウィンドウへ追加します。, 背景素材は、UnityChan 2D > Demo > Sprites にある「BG_02」をドラッグ&ドロップして、ヒエラルキーウィンドウへ追加します。, ヒエラルキーウィンドウへ各素材を追加をすると、シーンウィンドウは下記のような状態になります。, Add Components > Physics 2D > Rigidbody 2D, ユニティちゃんを動かした時に転ばないように、RigidBodyのConstraints内にあるFreeze Rotetion Zにチェックを入れておきます。, 床となるマテリアル(BG_02)が落下しないようにRigidBodyのBody TypeはKinematicを選択しておきます。, ユニティちゃんにはCapsule Collider 2DとBox Collider 2Dを、床となるマテリアル(BG_02)にはBox Collider 2Dのみを追加。, Add Components > Physics 2D > Capsule Collider 2D, Add Components > Physics 2D >  Box Collider 2D, Colliderの追加後、サイズ変更及び位置調整を行い、下記の画像のようにしておきます。, 床の接地判定に使用するために、ユニティちゃんに追加したBox Collider2Dを選択し、Is Triggerにチェックを入れておきます。, Add Components > Physics 2D > Box Collider 2D, プロジェクトウィンドウのCreateよりC♯ Scriptを選択し、「PlayerController」と名前をつけます。, 作成した「PlayerController」をダブルクリックで開き、スクリプトを作成していきます。, ジャンプ制限及び左右反転もスクリプト内に記述していますので参考にしてみてください。, Unityを使ったC♯入門はこちら→)[第1回] C#(C Sharp)言語とは?|Unityで学ぶC#入門, スクリプトを入力・保存を行ったら、プロジェクトウィンドウの「PlayerController」を選択し、ヒエラルキーウィンドウのユニティちゃんにドラッグ&ドロップします。, プロジェクトウィンドウのCreateよりAnimator Controllerを選択し、「unity_move」と名前をつけます。, 作成した「unity_move」をダブルクリックするとアニメーションウィンドウが開きます。, アニメーションウィンドウ内で右クリック > Create State > Emptyを選択し、Emptyノードを追加します。, Emptyノードをクリックし、インスペクターウィンドウで待機状態「Idle」の名称設定と適用するアニメーションの設定を行います。, 同様にして、「Move」、「Jump_up」、「Jump_down」の3つのノードを作成します。, 「Idel」ノードの上で右クリックし、Make Transitionを選択します。, マウスを動かすと「Idle」から矢印がのびるので、「Move」の上でクリックをします。, 「Move」から「Idle」への遷移やその他の遷移に関しても同様に設定を行います。, 上記の作成方法でパラメータとしてIdle、JumpUp、JumpDownを作成し、同様の設定で各矢印の設定を行えばAnimator Controllerの設定は完了です。, 作成した「unity_move」をヒエラルキーウィンドウのユニティちゃんにドラッグ&ドロップし、遷移情報を適用します。, 「Player Controller」にアニメーションの遷移に関するスクリプトの追加を行います。, 3Dユニティちゃんにジャンプをさせるので、テンプレートは「3D」を選択しておきます。, File > Open Scenes > UnityChan_1_2_1.unitypackage, インポートが完了すると、プロジェクトウィンドウ内にあるAssetsに「UnityChan」が追加されます。, 今回はキャラクターとしてユニティちゃん、床となるマテリアルとしてPlaneオブジェクトを利用します。, ユニティちゃんは、UnityChan >  Modelsにある「unitychan」をドラッグ&ドロップして、ヒエラルキーウィンドウへ追加します。, Planeオブジェクトは、ヒエラルキーウィンドウのCreateから3D Object > Planeを選択し追加します。, 追加の仕方は、2Dの時と同じですが、Phsics2DではなくPhysicsを使用します。, ユニティちゃんを動かした時に転ばないように、RigidBodyのConstraints内にあるFreeze Rotetion XおよびZにチェックを入れておきます。, 床となるマテリアルは、2Dの時と同じように落下しないようにRigidBodyのBody TypeはKinematicを選択しておきます。, 次に、ユニティちゃんにCapsule ColliderとBox Colliderを追加します。, 床となるマテリアルであるPlaneオブジェクトにはMesh Colliderが設定されているため追加は不要です。, Add Components > Physics  > Capsule Collider, 床の接地判定に使用するために、ユニティちゃんに追加したBox Colliderを選択し、Is Triggerにチェックを入れておきます。, プロジェクトウィンドウのCreateよりC♯ Scriptを選択し、「Player」と名前をつけます。, スクリプトを入力・保存を行ったら、プロジェクトウィンドウの「Player」を選択し、ヒエラルキーウィンドウのユニティちゃんにドラッグ&ドロップします。, 2Dの時と同じようにプロジェクトウィンドウのCreateよりAnimator Controllerを選択し、「UnityAction」と名前をつけます。, 作成した「UnityAction」をダブルクリックするとアニメーションウィンドウが開きます。, 上記の作成方法でパラメータとしてIdle、Jumpingを作成し、同様の設定で各矢印の設定を行えばAnimator Controllerの設定は完了です。, 作成した「UnityAction」をヒエラルキーウィンドウのユニティちゃんにドラッグ&ドロップし、遷移情報を適用します。, 今回は2Dの時と同じようにswich-case文を使用してアニメーションの遷移を行っています。, Unityの2D及び3Dキャラクターにジャンプ移動をさせる方法についてご紹介してきました。, どちらの場合においても、キャラクターに対してどのように接触判定を与えるか、動作をさせるために力の計算をどのように処理するかが重要でした。, これは、障害物などを増やした場合なども同様なのでゲームを作成する時の参考にしてもらえればと思います。, ■Unityちゃんをカメラで追従する方法はこちら→【Unity】カメラの基本設定を理解しよう!|Camera入門①, ■Unityちゃんを用いた当たり判定についてはこちら→【Unity】ユニティちゃんに攻撃アニメーションをつけて当たり判定を設定しよう!, この記事はいかがでしたか?もし「参考になった」「面白かった」という場合は、応援シェアお願いします!, PSVR / Oculus Rift / Oculus Go / Oculus Quest / HTC Vive / Gear VR / Windows MR/ VRゴーグルまとめ / スマホ VR  / スタンドアロン型 / SteamVR, キズナアイ / VRゲーム  / VR ZONE SHINJUKU / Steamゲーム / PSVRゲーム / Vtuberまとめ, produced by x garden スプライトとカメラの最初の座標が(0.0)のとき、(スプライトの横幅 - コライダーの横幅)/2となる。 ※「XR-Hub」商標出願中, // 左右の移動。一定の速度に達するまではAddforceで力を加え、それ以降はtransform.positionを直接書き換えて同一速度で移動する, アニメーターウィンドウのParametersの+ボタンをクリックし、Boolを選択。, インスペクターウィンドウにあるHas Exit Timeのチェックボックスを外す。, インスペクターウィンドウにあるConditionsの+ボタンをクリックし、ドロップダウンからRunと  trueを選択。, // 空中にいるかどうかの判定。上下の速度(rigidbody.velocity)が一定の値を超えている場合、空中とみなす, インスペクターウィンドウにあるConditionsの+ボタンをクリックし、ドロップダウンからRunningとtrueを選択。, 【Blender 入門】《第1回》柄、鍔、刃を作成!|日本刀をモデリングしてみよう!. このコライダーがドラッグ領域になる。 ※Rayを飛ばす距離を15fと短めにしてるので足りなかったら適宜変更すること。, カメラをドラッグするクラスを作成し、カメラにアタッチしておく。 mouseStartPos != Input.mousePosition ←この部分。 さあこれからUnityちゃんの2Dアクションゲームを作っていくわけですが、まず覚えておきたいのが横スクロールアクション定番のプレイヤーの動きに合わせて横に動くカメラワークでしょう。ついでにカメラの設定に関して一通りの操作方法は理解できるよう 目次. ゲームを作っているとプレイヤーをカメラで追従したくなることってありますよね。この記事では、2dと3dに分けてそれぞれの追従方法を解説していきます! 【2d】プレイヤーをカメラで追従する 動画 …