Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ アニメーターとアニメーション | Unityアニメーションシステム
Unityでの格闘ゲーム

bookアニメーターとアニメーション

メニューを表示するにはスワイプしてください

Unityにおいて、animatorはゲームオブジェクトにアニメーションを与える重要な役割を担います。アニメーションクリップトランジションパラメーターを連携させることで、キャラクターやオブジェクトに動的な動きや挙動を作り出します。これらのアニメーションにはキーフレームデータや設定が含まれており、オブジェクトの動きや相互作用を定義します。没入感のある魅力的なゲームプレイ体験を実現するために不可欠な要素です。

アニメーター

このオブジェクトにアニメーションを持たせるためには、アニメーターコンポーネントを追加する必要があります。

また、アニメーターに追加するためのコントローラーも作成する必要があります。

次に、階層からオブジェクトをクリックしてアニメーターパネルを開くと、次のような画面が表示されます。

Unityのアニメーターパネルでは、アニメーターがゲーム内のアニメーションの流れを制御します。

パラメーターは、アニメーション状態間の遷移に影響を与える変数です。Entry Stateはゲーム開始時の初期アニメーションを定義し、Any Stateは任意の状態からの遷移を可能にします。 パラメーターにはブール値、浮動小数点数、整数があり、ゲームの状況に応じて動的にアニメーションを変更できます。

アニメーション

まず、オブジェクトをクリックしてアニメーションパネルを開くと、次のように表示されます。

アニメーションが存在しない場合、オブジェクト用のアニメーションクリップを作成するよう求められます。作成をクリックすると、アニメーションの名前と保存場所を選択するよう指示されます。アニメーションを作成すると、アニメーターとアニメーションパネルの表示が変わります。

Unityのアニメーションパネルでは、開発者がゲームオブジェクトのアニメーションを作成、編集、管理できます。主な構成要素として、アニメーションタイムラインがあり、キーフレームやアニメーショントラックを表示し、時間経過に沿ったアニメーションの正確な編集を可能にします。アニメーションのパラメータを変更したい場合は、アセットフォルダーで選択して変更できます。

  • ループ時間:アニメーションが終端から始端へシームレスに再開;
  • ループポーズ:最終フレームから初期フレームへの滑らかな遷移によるシームレスなループ;
  • オフセット:アニメーション再生の時間遅延を指定、同期やバリエーションに有用。

アニメーションパネルでの記録

Unityのアニメーションパネルでは、記録ボタンがアニメーターにとって重要なツールです。有効化すると、Unityエディター内で直接キーフレームアニメーションの記録が可能になります。記録中にシーンビューやインスペクターウィンドウでオブジェクトのプロパティ(位置、回転、スケールなど)を操作することで、自動的にキーフレームを作成できます。

クリップの追加

「Create New Clip」をクリックすることで、オブジェクトに別のクリップを追加できます。

アニメーション間の遷移

異なるクリップを用意した後、アニメーター内でそれらの間の遷移を設定可能。 遷移を作成するには、まずターゲットを選択し「Make Transition」をクリックし、次に遷移先を選択。

このようにして、2つのアニメーション間に遷移が作成される。

遷移をクリックすると、インスペクターで次のようなビューが表示される。

Has Exit Time

有効にすると、遷移で指定された終了時間に基づき、現在のアニメーションが完了してから次のステートへ遷移します。Has Exit Time を無効にすると、条件やトリガーに基づいて、より動的かつ即時にステート間の遷移が可能になります。Has Exit Time の活用例については、今後さらに詳しく説明します。

遷移条件用パラメーターの作成

遷移の条件を設定するために、パラメーターを作成します。

次に、+ ボタンを押して条件を作成します。

状態Aから状態Bへ遷移するためには、can_Translate = trueである必要があります。

例:人間の動作

ゲーム内でキャラクターを操作している状況を想定します。パソコンで遊ぶ、寝る、食事をするアニメーションがあります。

遷移の条件

キャラクターがアニメーション間を遷移するタイミングを制御するために、条件を使用します。例えば、「空腹」という条件があるとします。この条件が真の場合、キャラクターはパソコンで遊ぶアニメーションから食事をするアニメーションへ遷移します。

遷移の実装

UnityのAnimatorでは、「playing with computer」アニメーション状態から「eating」アニメーション状態への遷移を作成します。この遷移の条件として「hungry」ブール値を設定します。したがって、「hungry」trueになると、Unityは自動的にキャラクターを「playing」から「eating」へ遷移させます。

さらに多くの条件や遷移を追加することも可能です。例えば、**「tired」**という条件を用意し、「playing」から「sleeping」への遷移をトリガーすることができます。また、より滑らかな遷移のためにアニメーションをブレンドすることもできます。

つまり、Unityのanimatorはまさに私たちと同じように機能します。各ブロックは日常生活でできるアクションを表し、矢印はそのアニメーションに切り替わるための条件を保持しています。

question mark

UnityにおけるAnimatorコンポーネントの目的は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  2
some-alt