鱼C论坛

 找回密码
 立即注册
查看: 2968|回复: 1

[技术交流] 07 - 浅谈 Animations

[复制链接]
发表于 2022-12-3 22:22:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2022-12-6 20:17 编辑

上一节课(06)我们初步了解了 Mobject 的使用。

这节课来看 Animations 的必备玩法,也就是动画的玩法。

在 Manim 中 Animations 分为两大类:Scene.play 和 Updaters

我们从最简单的 Scene.play 说起,Updaters 稍微难一些,我们放到后续课程来说啦。

重点:
  • run_time
  • rate_func
  • remover

在 play() 中可以有一个或者多个动画:
def construct(self):
    self.play(
        Animation1(...),
        Animation2(...),
        ...
    )
而同一个 play() 中的所有动画会在同一时间运行。

对于 Animation() 类中又有几个关键参数要知道:

  • run_time
  • rate_func
  • remover


run_time

run_time 就是运行时长:
self.play(
        Animation1(mob1,run_time=3),
        Animation2(mob2,run_time=3.66),
        ...
    )
上述就会设置 Animation1 动画时长 3 秒,Animation2 动画时长 3.66 秒。

如果不想依次设置 run_time,还可以一步到位:
self.play(
        Animation1(...),
        Animation2(...),
        ...
        run_time = 7.66
    )
这样所有动画总共会在 7.66 秒内执行完。

当然如果你又在 Animation 中设置 run_time,又在最后也设置了,那么 Manim 默认会优先根据 Animation 中设置时长来生效。


rate_func

rate_func 即动画速率函数,常见就下面 8 种:

01.jpg

  • smooth
  • linear
  • rush_into
  • rush_from
  • slow_into
  • dounle_smooth
  • there_and_back
  • lingering
  • exponential_decay

详细解释,我们放到后面来说,这里知道就好。

也是直接在 Animation 中使用:
self.play(
        Animation1(...,rate_func=func1),
        Animation2(...,rate_func=func2),
        ...
    )
func1 和 func2 就是上面说的 8 种速率中的一种。

Animation1 和 Animation2 就会依次使用 func1 和 func2 速率来生成动画。

也可以统一设置:
self.play(
        Animation1(...,rate_func=func1),
        Animation2(...),
        Animation3(...),
        ...
        rate_func = global_func,
    )
Animation1 使用 func1 速率,Animation2 和 Animation3 使用 global_func 速率。


remover

remover 参数是布尔类型,默认为 False,设置为 True 表示 Mobject 在动画运行结束后从屏幕中删除。

记住这些参数的玩法,总是自定义的优先级高于全局设置。

既然是浅谈,我们只需了解知道就好,详细的可以看官方文档:

2022-12-03_22-36-04.png
传送门

文档中分为了 7 类,其实从应用角度来说只有下面 4 种动画创建:

  • 创建 Create 类动画:将内容添加到屏幕中
  • 提示 Indicate 类动画:用来区分不同元素,起到提示作用
  • 变形 Transform 类动画:使用两个 Mobject 修改元素形状和位置
  • 去除 Un 类动画:起到清除屏幕上元素效果的动画(remove 参数设置为 True)

好了,本节课就到这里,即将正式开始我们的 Manim 教程!

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-12 16:07:17 | 显示全部楼层
Manim 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表