unity3d 如何在动画选项卡中添加空关键帧

cu6pst1q  于 2023-05-01  发布在  其他
关注(0)|答案(5)|浏览(315)

我正在制作一个关于敌人死亡的动画,但是动画不会在一个空帧上结束,所以动画的最后一帧将保留在屏幕上。我看到其他人通过制作一个空的关键帧作为动画的最后一帧来完成它,使动画在最后一帧后从屏幕上消失,但我找不到方法来做到这一点。
Wanted effect https://imgur.com/jaRsBDm找到制作最后一个空关键帧的方法

2ic8powd

2ic8powd1#

  • 一年后,但我发现你的问题,而寻找类似的事情。也许你现在已经解决了你的问题。但是看到一个问题被误解和没有答案让我很困扰。无论如何,我想在这里为其他可能来这里寻找这个的人补充。*
  • 首先在末尾添加一个额外的关键帧,最初是一个激活的精灵。
  • 然后在动画窗口中激活**“关键帧录制模式”**(按红色大点)。
  • 确保选择了要清空的关键帧。
  • 转到您的检查员窗口。找到【精灵渲染组件】。它应该在顶部有一个**“Sprite”**字段。
  • 当“关键帧录制模式”处于活动状态时,您可以将此字段设置为**“无”**(通过单击带有圆点的圆形图标,并选择弹出窗口中的第一项)。
  • 然后禁用记录模式。
  • 如果不激活录制模式,这将恢复到前一个精灵。*

当然,正如derHugo很好地解释的那样,要使动画在最后一帧(现在是空的)停止,您还需要在项目窗口中单击您的动画文件,并在检查器中禁用“循环时间”。

smdncfj3

smdncfj32#

我不认为others manually add他们,因为没有像empty keyframe这样的东西。有时候,这只是E。例如,当处理子画面时,请参见Why are there extra frames in Unity's Animation System?。我猜这和execution order和动画师和UI的渲染顺序有关。
但是,您可以简单地创建一个附加的关键帧,指向所需的时间,然后只需双击时间轴即可为当前状态的所有属性添加关键帧:

或者,您也可以通过单击灰色栏中的关键帧来选择一个关键帧的所有属性,并执行CTRLc - CTRLv以将所选关键帧复制到其他位置。
因此动画的最后一帧将保留在屏幕上
这实际上是通过简单地禁用
Loop Time
启用此选项可使动画播放完,然后在到达终点时重新开始。
相应的动画剪辑

pb3skfrl

pb3skfrl3#

我发现记录方法有点麻烦。我所做的是添加一个关键点的第一帧,我想无精灵设置。我添加的新密钥是在时间0。
Image of adding Key to animation.
在编辑器中保存更改后,我打开。anim文件(不是。anim. meta文件)并搜索相关路径。在我的情况下,Body/Cape。

- curve:
- time: 0
  value: {fileID: -6465775046297182995, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.05
  value: {fileID: -6465775046297182995, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.06666667
  value: {fileID: 3394640672729110067, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.083333336
  value: {fileID: -4514068313588038808, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.1
  value: {fileID: 7087822514200124772, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
attribute: m_Sprite
path: Body/Cape

然后我用None文件(fileID为0)替换相应时间的帧(在我的例子中时间为0):

- curve:
- time: 0
  value: {fileID: 0}
- time: 0.05
  value: {fileID: -6465775046297182995, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.06666667
  value: {fileID: 3394640672729110067, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.083333336
  value: {fileID: -4514068313588038808, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
- time: 0.1
  value: {fileID: 7087822514200124772, guid: fda466c51014e1140b1fd77abcc15ca3,
    type: 3}
attribute: m_Sprite
path: Body/Cape
pkln4tw6

pkln4tw64#

按下【动画】选项卡中的红色【录制】按钮,禁用游戏对象的精灵渲染器。然后再次单击同一按钮停止录制。这样你的动画将禁用精灵渲染器,这样使对象不可见。动画结束后,精灵渲染器将自动重置。

rsaldnfx

rsaldnfx5#

正如其他几个答案中所描述的,UI是如此笨拙,以至于荒谬。中的YAML编辑可能会更轻松。动画文件。

  • 在末尾添加关键帧。

它将重新使用最后一个精灵。

  • 编辑YAML以将最后一个关键帧的fileID设置为0

(two在YAML中具有fileID的新行)
这将清除最后一个精灵。
下面是diff应该是什么样子的截图:

相关问题