Version: 2023.2
public void ConfigureMaskFromClip (ref AvatarMask mask);

参数

mask 用于保存遮罩值的目标 AvatarMask

描述

将当前遮罩设置从剪辑复制到 AvatarMask

写入 AssetPostprocessor 时,使用此方法从剪辑配置中复制 AvatarMask 以便进行修改。

注意:您需要使用 ModelImporterClipAnimation.ConfigureClipFromMaskAvatarMask 应用回 ModelImporterClipAnimation

另请参阅:ModelImporterClipAnimation.ConfigureClipFromMask

using UnityEditor;
using UnityEngine;

public class CopyAvatarMask : AssetPostprocessor { void OnPreprocessAnimation() { var modelImporter = assetImporter as ModelImporter;

//Create a new AvatarMask to edit the mask var mask = new AvatarMask(); var clips = modelImporter.clipAnimations;

//Acquire the mask from the clip clips[0].ConfigureMaskFromClip(ref mask);

//Filter out the first non-root (0) bone mask.SetTransformActive(1, false);

//Apply the mask back to the clip clips[0].ConfigureClipFromMask(mask);

//Apply the clips back to the ModelImporter modelImporter.clipAnimations = clips;

//Destroy the AvatarMask since we're not using it anymore Object.DestroyImmediate(mask); } }