マスキングを行えばクリップ中のアニメーションデータの一部を破棄できるので、オブジェクトやキャラクターを部分的に動かすことができます。例えば、腕と脚両方のモーションを含む標準の歩行をするアニメーションがあるとします。しかし、そのキャラクターが大きな荷物を両手で持っている場合は、歩きながら腕を振って欲しくないでしょう。このような場合にマスクを使用して、荷物運びのアニメーションの上半身のみを再生し、歩行するアニメーションに重ねて、荷物を持っている状態でも標準の歩行するアニメーションを利用することができます。
マスキングのアニメーションクリップへの適用は、インポートタイムでもランタイムでも行えます。より好ましいのはインポートタイムでのマスキングです。そのほうが、破棄されたアニメーションデータがビルドから除外され、ファイルサイズやメモリフットプリントが小さくなるからです。またランタイムでブレンドされるアニメーションデータの量も少なくなるので処理スピードも速くなります。ただし時にはインポートマスキングが適さない場合もあります。そのような場合には、アバターマスクアセットを作成し、それを Animator コントローラーのレイヤー設定で使用すれば、ランタイムでマスクを適用することができます。このページでは、アバターマスクアセットの作成に関して説明します。
アニメーションのどの部分をマスクするかを設定する方法は二つあります。アニメーションが Humanoid(人型)アバターを使用していれば、ヒューマノイド・ボディを使用した選択方法を使えます。人型の簡単な図をクリックして、マスクしたい部分を選択したり解除したりするだけです。
ボディパーツに含まれるのは、頭、左腕、右腕、左手、右手、左足、右足とルート(足の下の影部分)です。 Body Mask では、手や足で インバースキネマティクス (IK)を切り替えることで IK 曲線をアニメーションに含めるかを決定することができます。
上記の方法とは別に、アニメーションに Humanoid アバターを使用していない場合や、マスクする場所を個々のボーンごとに細かく調整したい場合は、「Transform」を使用して、モデルのヒエラルキーのマスクしたい部分を選択することができます。これを行うには、マスクしたいトランスフォームのあるアバターへの参照をアサインした上で、「Import Skeleton」ボタンをクリックすると、インスペクターにアバターのヒエラルキーが表示されるようになります。それぞれのボーンにチェックボックスが付いており、ヒエラルキーの各部をマスクとして使用するかそれぞれ選択したり解除したりすることができます。
マスクアセットは、アニメーターコントローラー で、ランタイムでマスキングを適用する アニメーションレイヤー を指定する際に使用できます。またアニメーションファイルのインポート設定で、インポートアニメーションにマスキングを適用する際にも使用できます。
マスクを使用することの利点は、アクティブではないボディパーツがそれに関連付けられたアニメーションカーブを必要としないため、メモリのオーバーヘッドを減少させやすいことです。さらに、未使用のアニメーションカーブは再生中に計算する必要がないため、アニメーションによるCPUオーバーヘッドを削減しやすくなります。