2017年07月25日
unityでプレイヤーを動かす:変数の解説
前に出して実装した
プレイヤーの移動のプログラムの、
変数部分を解説します。
プログラムの理解は大事なんですけど、
上手く説明出来てるかどうか…
というか、こんなチマチマ記事を出すより、
一気に出した方が良いんだろうか…。
まぁ、それはそれでまた考えます。
そろそろ本題に入りましょう。
スポンサードリンク
まず、変数はどこかというと、
これですね。
これが変数の全体図になります。
この中の初めの一行、
これは、キャラクターを
走らせる、歩かせる、剣を振るなどの
「アニメーション(キャラの動き)」を
設定するのに使います。
ですが正直いって今回の
「プレイヤーの移動」には要らないので
説明は後回しにして、また後日ですね。
これは、接地判定に使います。
処理の方は後日説明しますが、
地面に着いているか、いないか
を判定します。
地面に着いていれば true、
着いていなければ false として使います。
これも接地判定で使います。
「地面に当たっているか」を
判定するのに使います。
これらは上から順に、
横の入力、
縦の入力となっています。
プレイヤーの移動にはキー入力が
欠かせませんので、この2つの変数に
「入力時の数値」を代入して使います。
これは、物理演算です。
重力や、力を加えるのに使えます。
本プログラムでは、
この変数へは必須です。
何故かというと、本プログラムでの移動は
物体に「加速度」を加える事で
移動を表現します。
他にも位置自体を移動させたり
unityにある「キャラクターコントローラー」
というのも使えます。
ですが個人的にキャラクターコントローラーは
好きではありませんのでこれの移動はまた記事を…
………書くかなぁ?
これらは上から順に
移動速度、ジャンプさせる力です。
ジャンプは、「上向きに力を加えて」
表現するため、この様に「どのくらいの力か」を
決めておきます。
Camは、移動の方向を決めるためのカメラです。
必要があればプログラムで取得しますが、
今はインスペクタからで良いでしょう。
Cam_forwardは、
「プレイヤーが進むべき正面」です。
カメラの向きからキャラクターが
進む、正面として使います。
move_forwardは、カメラの向きに関係なく、
「入力から進む方向を決める」のに使います。
例えば、カメラの正面に対して
後ろに進むのか右に進むのか、など
「キーの入力」からの進む方向を扱います。
これで変数は最後ですね。
これは何に使うのかというと、
「入力の大きさ」で使います。
例をあげると、
「キーの押し込みが
小さすぎる場合は移動しない」
という処理を作るのに役立ちます。
以上が変数全体となります。
ここでは大体のイメージしか
記述していないので、
分からなかったところもあるかと ^_^;
そこは、実際の処理を解説する時に
もう少し詳しくやるのでご安心を!
では、この辺にしたいと思いますが……。
……未だに記事を一括で書くかどうか
結論が出ません……。
どちらの方が良いのでしょうか…?
スポンサードリンク
プレイヤーの移動のプログラムの、
変数部分を解説します。
プログラムの理解は大事なんですけど、
上手く説明出来てるかどうか…
というか、こんなチマチマ記事を出すより、
一気に出した方が良いんだろうか…。
まぁ、それはそれでまた考えます。
そろそろ本題に入りましょう。
スポンサードリンク
変数部分
まず、変数はどこかというと、
public Animator anim;
public bool isGrounded;
public RaycastHit hit;
public float InputHorizontal;
public float InputVertical;
public Rigidbody rb;
public float moveSpeed;
public float jumpPower = 30f;
public GameObject Cam;
public Vector3 Cam_forward;
public Vector3 move_forward;
public Vector3 InputMagnitude;
これですね。
これが変数の全体図になります。
この中の初めの一行、
public Animator anim;
これは、キャラクターを
走らせる、歩かせる、剣を振るなどの
「アニメーション(キャラの動き)」を
設定するのに使います。
ですが正直いって今回の
「プレイヤーの移動」には要らないので
説明は後回しにして、また後日ですね。
public bool isGrounded;
これは、接地判定に使います。
処理の方は後日説明しますが、
地面に着いているか、いないか
を判定します。
地面に着いていれば true、
着いていなければ false として使います。
public RaycastHit hit;
これも接地判定で使います。
「地面に当たっているか」を
判定するのに使います。
public float InputHorizontal;
public float InputVertical;
これらは上から順に、
横の入力、
縦の入力となっています。
プレイヤーの移動にはキー入力が
欠かせませんので、この2つの変数に
「入力時の数値」を代入して使います。
public Rigidbody rb;
これは、物理演算です。
重力や、力を加えるのに使えます。
本プログラムでは、
この変数へは必須です。
何故かというと、本プログラムでの移動は
物体に「加速度」を加える事で
移動を表現します。
他にも位置自体を移動させたり
unityにある「キャラクターコントローラー」
というのも使えます。
ですが個人的にキャラクターコントローラーは
好きではありませんのでこれの移動はまた記事を…
………書くかなぁ?
public float moveSpeed;
public float jumpPower = 30f;
これらは上から順に
移動速度、ジャンプさせる力です。
ジャンプは、「上向きに力を加えて」
表現するため、この様に「どのくらいの力か」を
決めておきます。
public GameObject Cam;
public Vector3 Cam_forward;
public Vector3 move_forward;
Camは、移動の方向を決めるためのカメラです。
必要があればプログラムで取得しますが、
今はインスペクタからで良いでしょう。
Cam_forwardは、
「プレイヤーが進むべき正面」です。
カメラの向きからキャラクターが
進む、正面として使います。
move_forwardは、カメラの向きに関係なく、
「入力から進む方向を決める」のに使います。
例えば、カメラの正面に対して
後ろに進むのか右に進むのか、など
「キーの入力」からの進む方向を扱います。
public Vector3 InputMagnitude;
これで変数は最後ですね。
これは何に使うのかというと、
「入力の大きさ」で使います。
例をあげると、
「キーの押し込みが
小さすぎる場合は移動しない」
という処理を作るのに役立ちます。
終わりに
以上が変数全体となります。
ここでは大体のイメージしか
記述していないので、
分からなかったところもあるかと ^_^;
そこは、実際の処理を解説する時に
もう少し詳しくやるのでご安心を!
では、この辺にしたいと思いますが……。
……未だに記事を一括で書くかどうか
結論が出ません……。
どちらの方が良いのでしょうか…?
スポンサードリンク
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/6524531
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
※ ブログに表示されるのは、主の承認が必要なので時間がかかります!
コメントに気づかない場合もありますので、返信が遅れる場合も...