前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TimeLine丨A2、TimeLine模型动画、解决动画播放时位置重置、Track

TimeLine丨A2、TimeLine模型动画、解决动画播放时位置重置、Track

作者头像
星河造梦坊官方
发布2024-08-14 16:29:48
1480
发布2024-08-14 16:29:48
举报
文章被收录于专栏:星河造梦坊专栏

20190917更新: 添加播放动画时,模型位置自动重置的可能原因

一、给TimeLine添加动画

通过GIF我们可以发现,只有添加了TimeLine的物体,点击该物体,TimeLine窗口才出现该物体身上的TimeLine信息。

沒添加TimeLine的物体,窗口会出现创建TimeLine的对话框。

1、新建空物体GameObject,打开TimeLine窗口,选中空物体后会看到TimeLine窗口出现Create选项。现在为该空物体创建TimeLine。

2、将人物模型,从层级面板Hierarchy拖入TimeLine,这时会弹出创建哪几种选项。选择Add Animation Track。该选项是创建动画TimeLine。

3、点红色的录制按钮即可给该模型录制动画。

可给人形的动画添加简单的位移等动画,但实际骨骼运动无法添加,还是依靠自身动画导入到TimeLine的Track

二、动画播放位置设置

但我们会发现,人物播放完第一个动画后,不是在当前位置播放下个动画,而是自动回到原点播放第二个动画

原因1:Apply Root Motion和Bake into Pose

原因2:TimeLine和Animator冲突

原因1:Apply Root Motion和Bake into Pose

解决方案一:

解析Root Motion的理论:

比如说我们有一个人物行走的动画,我们来考虑一下几种情况(这里以“Root transform position(XZ)为例)

1、勾选”Bake into Pose",不勾选“Apply Root Motion",勾选”Bake into Pose"后,变换属于Body Transform,所以即使这里未勾选”Apply Root Motion“,但是动画依然会在场景中体现,人物会按照动画的路径行走(但是如果我们观察Inspector中模型的position参数,值一直不变)。但是因为没有勾选Apply Root Motion,所以动画结束后,变换不会应用到模型,所以如果这时候,如果开始一个新的动画的话,模型会瞬间回到起始位置(新的动画开始时候,模型处于行走动画开始时的位置)。

2、勾选”Bake into Pose",并勾选“Apply Root Motion",这里跟上面的情况唯一不同的就是,动画结束后,开始新的动画之前,变换会应用到模型。(模型的position在新的动画开始之前会发生变化,新的动画开始时候,模型处于动画结束时的位置

3、不勾选”Bake into Pose",勾选“Apply Root Motion",这时候,变换是作为Root Transform,所以因为这里勾选了Apply Root Motion,变换会应用到模型(模型的position跟着动画不停的变化),自然,新的动画开始时候,模型处于动画结束时的位置。

4、不勾选”Bake into Pose",并且不勾选“Apply Root Motion",这里变化还是作为Root Transform,但是因为没有勾选Apply Root Motion,所以变换将不被应用,所以模型将一直在本地不动,自然,新的动画开始时候,模型处于行走动画开始时的位置

解析文字参考自博客xak

Add:模型Animator Controller最初为空,我们也可给模型添加Animator Controller,由状态机控制TimeLine对应模型空白处的动画(非空白处,即我们录制的动画处,由我们录制的动画控制,而非融合)

注:上述理论要加Animator Controller状态机,尤其是在控制下个动画开始,要从上个动画结束的位置开始,必须加上。无论它是否Bake into Pose

bake into pose的对应的属性(例如:root transform rotation),将会直接由角色或物件的自身transform的rotation来决定角色方向(如由script直接驱动角色transform rotation角度令角色转身,适合的动画是原地踏步),反之就是用animation 本身的信息来驱动角色transform rotation(适合动画是转身动画本身就带动角色转动,如转45度转身动画,90度转身动画等)

解决方案二:

任意选择是否勾选Apply Root Motion

点击TimeLine中需要控制的动画轨道,在其Inspector上勾选Apply Track Offsets,它可用来设置物体开始的偏移(位置、旋转),物体中的每个动画便从此处开始运动

但是每个动画都从此位置开始运动,而不是从上个动画末尾处开始运动,我们给他加一个Animator Controller便可解决此问题,亦或者设置每个动画Inspector的Clip Root Motion Offsets值,改变每个动画初始位置

结合Pre-Extrapolation应用会更有意思

原因2:TimeLine和Animator冲突

这是我这次做项目时发现的。查找网上资料没找到解决办法,测试找到的原因,你也看看是不是因为这个。

原因:

模型自身带有Animator,并勾选了自动播放。

将改模型放到TimeLine后,预览TimelIne没问题,但运行时位置就出错了。这是因为运行时Animator和TimeLine都同时运行。导致位置出问题。

解决办法:

Animator Entry时播放空动画即可。

三、Track

Activation Track:控制该物体是否被激活,通常用来设置照相机是否激活(时间)

Animation Track:控制动画,可对物体进行动画录制。

Audio Track:音频轨道

刚添加时,它是没有属性指定物体的

他指定的物体可用来控制此音频声音大小等内容。首先我们需要创建一个符合此类型的物体,即给物体添加Audio Souce组件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、给TimeLine添加动画
    • 二、动画播放位置设置
      • 原因1:Apply Root Motion和Bake into Pose
        • 原因2:TimeLine和Animator冲突
        • 三、Track
        相关产品与服务
        云点播
        面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档