
アニメーションのインポート
Tutorial
Beginner
+10XP
30 mins
Unity Technologies

このチュートリアルでは、インポートしたアニメーションを設定し、すでに存在するプロジェクトで使用する方法を学びます。
このチュートリアルが終わるころには、次のことができるようになります:
- リグの種類とその用途を定義する。
- アバターをヒューマノイドリグと組み合わせて使用し、アニメーションを共有する方法について説明する。
- アバターをアニメーターコントローラーと組み合わせて使用し、アニメーションを制御する方法について説明する。
- インポートしたアニメーションクリップを Unity のリグモデルに適用する。
- キャラクター間でアニメーションを共有するためのヒューマノイドリグの設定。
- アニメーションクリップをトリミングして、その中の特定のキーフレームシーケンスにアクセスすることができる。
- インポートしたリグに対して、新しいアニメーターコントローラを作成する。
- ヒューマノイドリグ間でアニメーターコントローラーを共有。
- 指定されたパラメーターの目的を特定する。
- パラメーターと遷移の関係を説明できる。
Languages available:
1. 概要
Unity のアニメーションツールは強力ですが、複雑なアニメーションや非常に長いアニメーションは、外部の DCC で作成されることが多いようです。特にキャラクターのアニメーションになると、複雑な制御が必要になることが多くなります。そのため、外部のアニメーションを Unity へインポートする必要がある場合が多くあります。このチュートリアルでは、インポートしたアニメーションを設定し、すでに存在するプロジェクトで使用する方法を学びます。
2. アニメーションは共有できるの?
アニメーションの制作は、非常に時間のかかる作業です。アニメーターは、プロジェクトのどこに時間をかけるのがベストかを判断しなければならないことが多く、背景のキャラクターや、個性を出す必要のないアニメーションのセットには、あらかじめ作られたアニメーションを使うことがあります。これにより、インタラクティブな体験の中で、ユーザーが最も目にするものに取り組むことができます。すべての種類のキャラクターが、他のリグ用に作られたアニメーションを簡単に利用できるわけではありませんが、Unity では、基本的なヒューマノイド形状(頭、2 本の脚、2 本の腕)に沿ったキャラクターであれば、Humanoid (ヒューマノイド) アニメーションシステムを利用することができます。このシステムでは、リグのジョイントを基にして、あるヒューマノイドキャラクターから別のヒューマノイドキャラクターへ、既存のアニメーションを変換しています。つまり、見た目が全く異なるキャラクターでも、同じアニメーションセットを共有することができるのです!
DCC でアニメーションを自作する以外にも、オンライン、特に Unity アセットストアには何百ものアニメーションセットが用意されており、それらを使用することもできます。元々ヒューマノイドの要件に該当するリグを使って作成されたアニメーションであれば、Unity プロジェクトに統合することが可能です。さらにいつものことながら、ダウンロードしたアニメーションのライセンスを確認し、プロジェクトで使用することが許可されているかどうかを確認してください。
3. コントローラーの共有
1. Scenes フォルダーにある Animation_SharedAnimation_Scene を開きます。
2. Play モードに入り、シーンを観察します。
このシーンでは、複数のキャラクターがグループになって演台の上に立っていますが、現在は手前にいるキャラクターだけがアニメーションしています。コントローラーに新しいアニメーションを追加する前に、他のキャラクターも同様にアニメーションできることを確認しておきましょう。
3. Play モードを終了します。
4. Hierarchy の中の Characters グループを探し、展開するとすべてのキャラクターが表示されます。
5. グループ内のすべてのキャラクターを選択し、Inspector のオブジェクトピッカーを使用して、Controller パラメーターに Shared_Controller アニメーターコントローラーを選択します。
6. 再び Play モードに入ります。
すべてのキャラクターがアニメーションを開始します。すべてのキャラクターは同じアニメーターコントローラーを共有していますが、それぞれ異なるアニメーションをすることに気がつくでしょう。これは、アニメーターコントローラーに 3 つのアイドルアニメーションがあり、そこからランダムに選択されるためです。各キャラクターは、アニメーションコントローラーのインスタンスを持っています(言い換えれば、個々のキャラクターは、全く同じコントローラーから動作するのではなく、コントローラーの独自のコピーを持っている)つまり、アイドル用に選択されたランダムアニメーションは違う場合があります。
4. アニメーションの種類の設定
アニメーションを Unity にインポートする際、アニメーターは個々のアニメーションごとに異なるファイルを作成することも、1 つのファイルにまとめてアニメーション化することもできます。複数のアニメーションを含む 1 つのファイルを Unity にインポートする場合、インポート設定の Clips セクションで分割することができます。ここでは、個々のアニメーションの開始キーフレームと終了キーフレームを定義すると、Unity がそれらを分離して使用するようになります。
1. Animations フォルダーに入れ子になった Imported Animations フォルダーに移動し、Dance_x3 を選択します。
2. Inspector で Rig タブを選択し、リグのインポート設定を表示します。
デフォルトでは、Humanoid アニメーションシステムに対応したリグでも、Animation Type が Generic に設定されています。このアニメーションの種類は、他のリグでアニメーションを共有することを妨げるので、修正する必要があります。
3. Animation Type のドロップダウンを選択し、リストから Humanoid を選択します。
4. Apply をクリックします。
これで、Humanoid アニメーションシステムで使用するためのアニメーションが設定されました。
5. 最初のアニメーションクリップの設定
インポートしているアニメーションを見てみましょう。
1. Inspector の上部にある Animation タブを選択し、アニメーションのインポート設定を表示します。
2. Inspector の下部にある Play ボタンを選択すると、アニメーションがプレビューされます。
インポートしたアニメーションは、1 つのアニメーションクリップに 3 つの異なるダンスシーンが含まれています。現在、これらのアニメーションは個別にアクセスすることができないので、次はそれを修正しましょう。アニメーションのインポート設定の上半分には、Clips セクションがあり、ここで個々のアニメーションクリップを定義することができます。
3. Clips セクションで、+ ボタンを 2 回クリックすると、既存のアニメーションクリップが複製されます。
4. Dance_x3 と書かれた最初のクリップを選択して、クリップの下のクリップ編集セクションで選択し、Dance_x3 クリップを Dance_01 にリネームします。
このクリップは最初のダンスシーケンスに使用されるため、その特定の動きに対して開始フレームと終了フレームを定義する必要があります。
5. Inspector の下部にある Preview ウィンドウでアニメーションを確認し、アニメーションの開始位置と終了位置に注意してください。
アニメーションクリップの名前を変更するセクションの直下には、開始フレームと終了フレームのパラメーターが設定されたタイムラインがあります。これはクリップの最初のアニメーションなので、開始フレームは 1 のままでいいですが、終了フレームは定義する必要があります。
6. 終了フレームのパラメーターに、150 と入力します。
7. アニメーションをプレビューして、シームレスにループしていることを確認し、必要であれば終了フレームを調整します。
プレビューではアニメーションがループしていますが、実体験では現在 1 回しかアニメーションしないように設定されています。
8. Loop Time を有効にすると、アニメーションがループします。
ここでアニメーションをプレビューすると、キャラクターが踊っている接地面が動いているように見えることに気がつくでしょう。これは、このアニメーションシーケンスに関連するルートモーション (Root Motion) があることを示すものです。そのままでは、アニメーターに適用すると、キャラクターが床の上を滑っているようなアニメーションになります。ルートモーションは、このプロジェクトでは扱わない高度な内容なので、データをクリップにベイク処理することで、このアニメーションクリップでの使用を単に無効にすることができます。これにより、スライディング効果がなくなります。
9. Root Transform Rotation、Root Transform Position (Y)、Root Transform Position (XZ) の Bake into Pose オプションを有効にします。
これで、プレビューの接地面は安定したものになります。
6. 残り 2 つのクリップの設定
1 つ目のクリップで完了した処理を、残りの 2 つのクリップでも繰り返す必要があります。
1. Clips リストの 2 番目のクリップ(現在 Take 001 という名前)を選択し、Dance_02 に名前を変更します。
2. 開始フレームを 151 に設定します。
3. 終了フレームを 260 に設定します。
4. Loop Time を有効にします。
5. Root Transform Rotation, Root Transform Position (Y), Root Transform Position (XZ) の Bake into Pose オプションを有効にします。
6. Clips リストで最後のクリップを選択し、Dance_03 に名前を変更します。
7. 開始フレームを 261 に設定し、終了フレームを 350 のままにします。
8. Loop Time を有効にします。
9. Root Transform Rotation、Root Transform Position (Y)、Root Transform Position (XZ) の Bake into Pose オプションを有効にします。
10. Inspector の一番下までスクロールし、Apply を選択して、インポートしたすべての変更を保存します。
7. アニメーションコントローラーへの新しいクリップの追加
新しいクリップは完全に設定され、すでに存在するアニメーターコントローラーに追加することができるようになりました。
1. Animations フォルダーにある Shared_Controller アニメーションコントローラーをダブルクリックし、Animator で開き ます。
2. Animator を Scene ビューの直下にドッキングすることで、Project ウィンドウと Animator に同時にアクセスすることができます。
3. Imported Animations フォルダー内の Dance_x3 アニメーションを見つけ、それを展開すると 3 つの新しいアニメーションクリップがすべて現れます。
4. 3 つのダンスクリップを Animator にドラッグします。
このシーンの各キャラクターには、ContentParty というスクリプトがアタッチされています。Visual Studio で確認したい場合は、ダブルクリックで開いてください。スクリプトの機能は単純で、アプリケーションが起動すると、スクリプトは各キャラクターのアニメーターにアクセスし、ユーザーからのキーボード入力を探し始めます。ユーザーが Q、W、E を押すと、スクリプトはそれぞれ Dance_01、Dance_02、Dance_03 という Trigger パラメーターを呼び出します。
アニメーターでこれらのパラメーターを作成し、新しいアニメーションクリップに接続しましょう。
5. Animator の Parameters タブにある + ボタンを選択し、リストから Trigger を選択します。
6. 新しい Trigger Dance_01 という名前を付けます。スペルや大文字小文字を正確に書かないとスクリプトは動作しません。
7. さらに 2 つのトリガーを作成し、Dance_02 と Dance_03 と名付けます。
ユーザーがキーボードの Q、W、E キーを押すと、キャラクターが今やっていることを止めてダンスを披露します。これはいつでも起こることなので、Any State ノードが使用されます。Any State ノードは、ステートマシンの任意の遷移に割り込むことができ、それに関連する任意のアニメーションを呼び出します。
8. Any State ノードを右クリックし、Make Transition を選択し、Dance_01 ノードに接続します。
9. 新しい遷移を選択し、Inspector で条件セクションの + ボタンをクリックし、リストから Dance_01 を選択します。
10. Dance_01 ノードを右クリックし、Make Transition を選択して、Exit ノードに接続します。
11. この作業を Dance_02 と Dance_03 に繰り返します。
12. ゲームの再生テストを行い、Q、W、E を押します。
キーボードの Q、W、E を押すと、キャラクターはすぐに関連するダンスに移行し、完了した後、アイドリングに戻ります。
8. ダンスパーティー!
このままダンスパーティーを続けましょう!キャラクターにアタッチされている DanceParty スクリプトは、実はあと 3 つのアニメーションシーケンスが設定されているので、Animator コントローラーに個人的なタッチを追加することができます。
- ダンスパーティー用の新しいダンスアニメーションのシーケンスを 3 つ見つけるか、作成します。もし、どこを見ればいいのかわからない場合は、Unity Asset Store にたくさんのリソースがあることを思い出してください。
- アニメーションを Unity にインポートし、必要な設定を行います。
- Animator コントローラーにアニメーションクリップを追加します。
- 3 つの新しい Trigger パラメーター、Dance_04、Dance_05、Dance_06 を作成します。これらのパラメーターは、R、T、Y キーに対応します。
- 新しいアニメーションクリップへの遷移を作成し、アイドルアニメーションに戻ることができるように、Exit ノードへ遷移することを忘れないようにしてください。