使用混合形状 | 您所在的位置:网站首页 › blender动画导入unity为啥没反应 › 使用混合形状 |
Unity 用户手册 (2019.4 LTS)
动画
Animator Controllers
使用混合形状
其他混合树选项
Animator Override Controller
使用混合形状
准备原始作品
在 3D 建模应用程序(例如 Autodesk® Maya®)中设置好混合形状后: 在 3D 建模应用程序中,启用以下导出设置: 启用导出动画。 为变形模型启用导出混合形状。 将选定项导出到 FBX 文件。 将 FBX 文件导入到 Unity。 在 Hierarchy 窗口中选择新导入的模型。Inspector 窗口会显示 BlendShapes 部分,其中包含 SkinnedMeshRenderer 组件下的所有混合形状。 对于列出的每个混合形状,您可以将其影响(权重)更改为默认形状,其中: 0 表示混合形状没有影响。 100 表示混合形状具有最大影响。 在 Unity 中创建动画要创建混合动画,请执行以下操作: 打开 Animation 窗口(从 Unity 主菜单中选择:__Window__ > Animation > __Animation__)。 在窗口左侧,单击 Add Curve,然后添加一个混合形状。Inspector 窗口会在 BlendShapes 部分的 SkinnedMeshRenderer 组件下显示新的混合形状。通过调整关键帧和混合权重来创建所需的动画。 要预览动画,请在 Editor 窗口或 Animation 窗口中单击 Play。 脚本访问也可以使用 GetBlendShapeWeight 和 SetBlendShapeWeight 等函数来通过脚本设置混合权重。 要检查网格有多少混合形状,请使用 blendShapeCount 变量。 以下代码示例展示了连接到具有三个或更多混合形状的游戏对象时,如何随着时间推移将默认形状与其他两个混合形状混合在一起: using UnityEngine; using System.Collections; public class BlendShapeExample : MonoBehaviour { int blendShapeCount; SkinnedMeshRenderer skinnedMeshRenderer; Mesh skinnedMesh; float blendOne = 0f; float blendTwo = 0f; float blendSpeed = 1f; bool blendOneFinished = false; void Awake () { skinnedMeshRenderer = GetComponent (); skinnedMesh = GetComponent ().sharedMesh; } void Start () { blendShapeCount = skinnedMesh.blendShapeCount; } void Update () { if (blendShapeCount > 2) { if (blendOne < 100f) { skinnedMeshRenderer.SetBlendShapeWeight (0, blendOne); blendOne += blendSpeed; } else { blendOneFinished = true; } if (blendOneFinished == true && blendTwo < 100f) { skinnedMeshRenderer.SetBlendShapeWeight (1, blendTwo); blendTwo += blendSpeed; } } } } 其他混合树选项 Animator Override Controller |
CopyRight 2018-2019 实验室设备网 版权所有 |