アニメーション遷移
ヒューマンテンプレートファイル

アバターマスク

マスキングを行えばクリップ中のアニメーションデータの一部を破棄できるので、オブジェクトやキャラクターを丸ごと全部ではなく部分的に動かすことができます。例えば、腕と脚両方のモーションを含む標準の歩きのアニメーションがあるとします。しかし、そのキャラクターが大きな荷物を両手で持っている場合は、歩きながら体側で腕を振って欲しくないでしょう。このような場合にはマスクを使用すれば、歩きのアニメーションの上に荷物運びのアニメーションを上半身のみを再生させた状態で重ねることで、荷物を持っている状態でも標準の歩きのアニメーションを利用することができます。

マスキングのアニメーションクリップへの適用は、インポートタイムでもランタイムでも行えます。より好ましいのはインポートタイムでのマスキングです。そのほうが、破棄されたアニメーションデータがビルドから除外され、ファイルサイズやメモリフットプリントが小さくなるからです。またランタイムでブレンドされるアニメーションデータの量も少なくなるので処理スピードも速くなります。ただし時にはインポートマスキングが適さない場合もあります。そのような場合には、アバターマスクアセットを作成し、それを Animator コントローラーのレイヤー設定で使用すれば、ランタイムでマスクを適用することができます。このページでは、アバターマスクアセットの作成に関して説明しています。

アニメーションのどの部分をマスクするか設定する方法は二つあります。アニメーションが Humanoid(人型)アバターを使用していれば、ヒューマノイド・ボディを使用した選択方法を使えます。人型の簡単な図をクリックして、マスクしたい部分を選択(又は選択解除)するだけです。

ボディパーツに含まれるのは、頭、左腕、右腕、左手、右手、左足、右足とルート(足の下の影部分)です。 Body Mask では、手や足で インバースキネマティクス (IK)を切り替えることで IK 曲線をアニメーションに含めるか決定することができます。

  • アバターの各部をクリックして、含める部分と含めない部分(緑/赤)を選びます。
  • アバターの周囲の何もない部分をダブルクリックすると全体を一度に切り替えられます。
ヒューマノイド・ボディ(人型の図)によるアバターマスクの設定
ヒューマノイド・ボディ(人型の図)によるアバターマスクの設定

上記の方法とは別に、アニメーションに Humanoid アバターを使用していない場合や、マスクする場所を個々のボーンごとに細かく調整したい場合は、「Transform」を使用して、モデルの階層のマスクしたい部分を選択することができます。これを行うには、マスクしたいトランスフォームのあるアバターへの参照をアサインした上で、「Import Skeleton」ボタンをクリックすると、インスペクターにアバターの階層が表示されるようになります。それぞれのボーンにチェックボックスが付いており、階層の各部をマスクとして使用するかそれぞれ選択・非選択することができます。

Transform を使用した、アバターマスクの設定
“Transform” を使用した、アバターマスクの設定

マスクアセットは、アニメーターコントローラー で、ランタイムでマスキングを適用する アニメーションレイヤー を指定する際に使用できます。またアニメーションファイルのインポート設定で、インポートアニメーションにマスキングを適用する際にも使用できます。

Mask を使用することの利点は、これらはアクティブではないボディパーツがそれに関連付けられたアニメーションカーブを必要としないため、メモリのオーバーヘッドを減少させやすい、ということです。さらに、未使用のアニメーションカーブは再生中に計算する必要がないためアニメーションによる CPU オーバーヘッドを削減しやすくなります。

アニメーション遷移
ヒューマンテンプレートファイル