なに? UnityLearn 入門プロジェクトがわからない? 心配しないで、やります

3D ビギナー: チュートリアル リソース | John Lemon's Haunted Jaunt: 詳細な 3D ビギナー プロジェクト (公式ドキュメントを参照)

この記事の目的は、UnityLearn プロジェクトのいくつかの注目すべき点と、写真のデモが表示されていない場所をより詳細に要約することです.プロジェクト中にエラーが発生し、知らない友人の問題を解決します.開始方法。

始める前の準備

このunity公式プロジェクトのダウンロードアドレス(公式チュートリアルへのリンクも含まれています)

3D 初心者: チュートリアル リソース | チュートリアル | Unity アセット ストア

私のプロジェクトに保存します

3D の空のコア プロジェクトを作成します。私のバージョンは 2021.1.11f1c1 です

インポートしたプロジェクトを Windows のパッケージ マネージャーでダウンロードします。

1.シーンを保存する

MainScene というシーン リソースを作成します。

2.キャラクターモデル追加

JohnLemon ゲーム オブジェクトをシーンにドラッグします。

JohnLemon オブジェクトの内部

基本的に、JohnLemon がアニメーション化される方法は次のとおりです。キャラクターの親ゲーム オブジェクトの Animator コンポーネントは、すべての骨格ゲーム オブジェクトの Transform コンポーネントの回転を変更し、これらの変更が一緒に発生してキャラクターをアニメーション化します。

3.プレハブとは?

4.キャラクターをプレハブ化(Prefebsフォルダに入れる)

5.キャラクターをアニメートする(アニメ化する準備ができたと言うだけで、操作はありません)

6. Animator Controller を作成します (対応するフォルダー Animator に作成されます)。

7. アニメーションを設定する

JohnLemon ゲーム オブジェクトは既にプレハブですか?

プレハブ モードに入り、[自動保存] チェックボックスを無効にします (このチェックボックスを有効にすると速度が低下します)

ゲーム オブジェクト JohnLemon にアニメーションを追加します。Animator コンポーネントがあることがわかります。Animator Controller を作成する必要があります。

対応する場所が作成されたら、アニメーション リソースを見つけて、Animator ウィンドウにドラッグします。

LsWalking という名前のパラメーターで bool 量を作成します。これは、ゲーム オブジェクトが歩いているかどうかを判断するために使用され、遷移パラメーターに使用されます。

現在、ステート マシンには 2 つの状態がありますが、どちらの状態を再生するかを定義するロジックはありません. 現在、ステート マシンはデフォルトの状態で開始され、決して変更されないため、JohnLemon は常にアイドル状態になります。いくつかのロジック、Animator トランジションを作成する必要があります。

8.アニメータートランジションを作成する

Make Trasition を右クリックしてトランジションを作成します

接続線をクリックしてインスペクタに入り、[Has Exit Time] チェック ボックスをキャンセルします。[Has Exit Time] が true の場合 (このチェック ボックスを有効にする)、一定時間後に遷移が自動的に実行され、ステート マシンが次の状態を再生します。このゲームでは、トランジションのタイミングを制御することが重要なので、Has Exit Time チェックボックスをオフにします。

9.遷移に条件を追加する

以下は、遷移を提供する条件を追加します

条件に条件を追加する

ウォークからアイドルまで、空にするのは逆で、それ自体で行われます。

10. Animator Controller を JohnLemon プレハブに割り当てます

Animator Controller をゲーム オブジェクトの Animator コンポーネントの Controller プロパティにドラッグします。

11.キャラクターを物理に反応させる

以下のゲームオブジェクトに物理的効果を追加します

Play を開始すると、まあ、何かがおかしいのです。キャラクターは短い距離を落下した後に停止します。再生ボタンをもう一度押すと、再生モードが終了します。

これはアニメーターが原因です。Animator コンポーネントの 3 番目のプロパティは、現在有効になっている Apply Root Motion です。ルートモーション

12.ルートモーションとは?

13.更新ループとは何ですか?

14.ジョン・レモンの動きの問題を修正

ゲーム オブジェクトの prefab モードに入り、UpdateMode を Animate Physics に変更します (以前は Normal でした)。

この変更により、Animator は物理に合わせてキャラクターを動かします。これで、キャラクターを移動する更新ループ間で競合が発生することはなくなり、キャラクターは物理演算のセットアップに適切に反応するようになります。

アニメーションには垂直方向のルート モーションがないことがわかりましたが、オブジェクトと衝突した後、JohnLemon が垂直方向に移動するのを止めることはできません。これを防ぐ方法はいくつかあります。

最も明白なオプションは、Rigidbody コンポーネントで Use Gravity を無効にすることです。

これにより、キャラクターが落下するのを防ぎますが、それはあなたが望むものではありません. Use Gravity を無効にしても、衝突によって押し下げられた場合はキャラクターが落下したり、衝突によって押し上げられた場合は浮き上がったりする可能性があります。これは絶対に避けたいので、物理演算を使用してキャラクターの動きを制限する必要があります。

RigidBody コンポーネントを見つけ、矢印をクリックして Constraints プロパティを展開します。これらの Constraint プロパティは、剛体 (Rigidbody) の移動方向を制限します。Unity の座標系を調べて、それがどのように機能するかを正確に見てみましょう。

15. Unity の座標

Unity の位置と向きは、x、y、z で表される 3D 座標を取ります (これらは一緒になってベクトルを形成します)。次のチュートリアルでは、ベクトルについて詳しく説明します。シーンにはこれらの方向のグローバルな定義があり、シーン ウィンドウの右上に表示されます。

色付きの矢印は各軸の正の方向を示し、反対側の灰色の矢印は負の方向を示します。

  • x軸は赤
  • y軸は緑
  • z軸は青色

16. 位置と回転

キャラクターの高さは変わらないはずなのでフリーズ位置Y

キャラクターは正面と側面に寝転んではいけないので、Freeze RotationX, Z

17. John Lemon にコライダーを追加する

次にコライダーをゲームオブジェクトに追加します

JohnLemon に最適な最も単純な形状は、Box Collider ではなく Capsule Collider です。

フィットするようにサイズ変更

18 まとめ:

ゲーム キャラクターの作業を開始しました。プレハブの機能を最初に確認し、JohnLemon の動作を制約する単純な一連のルールを作成しました。

おすすめ

転載: blog.csdn.net/m0_59069134/article/details/127791722