top of page

【Unity】スーパーマリオメーカーに対抗してみた Part.2

前回の続き。

今回は、Blend Treeを使ってのアニメーション設定

コードを使っての、プレイヤー移動実装

ここまで頑張ろうと思います。

【Blend Treeでのアニメーション設定】

方向のパラメータを設定

X軸とY軸について、定義しておきます。

今後の処理で、X軸方向にどのくらい進んだかで

向きを判定するためです。-なら左、+なら右ですね。

今回は左右なので、Y軸に対する定義は必要ないのですが、

せっかくなので入れます。ジャンプ時と、しゃがみ時のモーションも用意しました。

Blend Treeを設定

2D simple directionalを選択して、

XとYを登録

right,left,jump,stayに対して、方向を定義します。

rightなら、Xが+1の時にrightのモーションが入るようにします。

注意ですが、ジャンプのみの実装等、Y軸に+しか実装しないなどをすると

エラーが発生する可能性がありますので、必ず-+どっちのモーションも

追加してください。もししゃがみの実装予定がなければ、座標の登録だけしておいてください。

これでアニメーション変更についての基盤が整いました。

あとはコードで指定すれば、オッケーです。

【スクリプト】

using UnityEngine; using System.Collections; public class man_control : MonoBehaviour { protected Animator animator; private float directionX = 0; private float directionY = 0; private bool walking = false; public float walkingSpeed = 1f; public float jumpPower = 200; // Use this for initialization void Start () { animator = GetComponent<Animator> (); } void Update(){ if(animator) { float h = Input.GetAxisRaw("Horizontal"); float v = Input.GetAxisRaw("Vertical"); walking = true; if (h > 0) { directionX = 1; directionY = 0; } else if (h < 0) { directionX = -1; directionY = 0; } else if (v > 0) { directionX = 0; directionY = 1; } else if (v < 0) { directionX = 0; directionY = -1; } else { walking = false; }

//Horizontalで横移動、Verticalで縦移動を指示できます。

//hとvに移動時にパラメータを与え、それが0より大きいか小さいかで

//アニメーションのほうのXとYの定義に合わせます。 if (walking) { transform.Translate(new Vector3(directionX, directionY, 0) * Time.deltaTime * walkingSpeed); } animator.SetFloat("DirX", directionX); animator.SetFloat("DirY", directionY); animator.SetBool("Walking", walking); }

//Walkingをしている時、animatorからアニメーションをひっぱりだし

//画面上に反映させます。 } }

はい、とりあえずここまででキャラクターの基礎移動と、

移動時の基礎モーションが完成しました。

あとは、物理挙動と当たり判定をいれましょう。

RigitbodyにFixedAngleをいれるのを忘れないように。

いれないと、体勢が固定できず、キャラクターが倒れたりします。

あとは、しゃがみなどは位置が通常により低くなるので、

Positionに補正をかけてあげましょう。

今回は、Y軸にマイナスの補正をかけました。

これをしないと、空中に浮いてしまいます。(キャラクターの初期位置を

Bottomにすれば、底面で固定もできますので、そっちのほうがいいかも。)

ちゃんと動くようにするには、あともう少しいじらないといけない

項目がありますが、ここでは割愛します。

次回は、

ビームを出す。

死亡時の演出

ギミックの実装

などできたらと思います。

では。

bottom of page