| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> manim学习笔记 -> 正文阅读 |
|
[游戏开发]manim学习笔记 |
manim学习笔记
前言什么是manimmanim是大佬3Blue1Brown 开发的动画引擎,他使用 manim 创作出了许多直观、美丽的数学科普内容。 它在B站也有也有账号3Blue1Brown。 目前 Manim 主要有三个版本: manim-master (3b1b 新版), ManimCommunity (社区版), manim-cairo-backend (3b1b 旧版) 这篇文章学习以社区版即manimce为主,以及有关于manimce的学习也可以去看社区版的官方文档https://docs.manim.community/。 安装manim首先manim本身是一个python项目,安装python是必不可少的,这里默认大家都会。 然后,manim的运行环境的组成分为三个部分:manim、ffmpeg、latex发行版 为了项目的整体可迁移性,我选择了pipenv虚拟环境并安装了以下包:
latex发行版可以选择 Manim是怎么工作的manim的工作流程是由好几个部分组成的。 简单的来说,就是以下几步:
Mobject
Mobject是很多其他类的父类:
VMobject十分灵活多变,本质上是贝塞尔曲线,可以展现各式各样的矢量图形,在manim里,文本也是VMobject。 ImageMobject本质上是像素的矩阵。 Group/VGroup这两个可以作为容器包含多个对象,Group可以包含任何Mobject,VGroup只能包含VMobject或VMobject的子类实例 动画动画类型manim中动画 play动画可以播放类动画(Class动画)或者方法动画(method动画),实质二者并没有什么差别,因为方法动画是类动画的子类型。 而Updaters是动画每一帧都会调用的函数,Updaters有三种不同类型:Simple updaters、α updaters、dt updaters Class动画类所有的Class动画都是继承自 它有以下几个重要特性:
方法作用简述
位置(Positions)绝对位置(Absolute)绝对定位,以屏幕为参考坐标,原点位置在屏幕中心 默认情况下,所有的Mobject都创建在屏幕正中心的位置
相对位置(Relative)相对定位,以某个对象或是某个点为参考而相对移动位置
需要注意的是,以上方法是立即生效的,如果需要移动动画,可以调用animation属性
变形变换所有的对象都有默认的大小,几乎所有的Mobject动画都可以使用
变形方法Mobjects变形方法可以分为三类
也可以通过控制缩放因子. 以上变换都可以使用 Mobject对象的Setter和Getter方法Getter方法Getter就是可以从对象上获取各种信息的方法,这些方法的名字大多都是以get前缀开始的。 Setter方法Setter方法可以用来更改对象的属性 VMobject对象属性
manim自定义配置manim提供了三种方法给我们自定义配置: config.cfg文件manim所有的默认配置可以用以下命令查看:
我们可以通过创建自己的cfg文件来启用自己想要的配置。 cfg文件中可以配置的选项可以分为五个类别: 使用以下的命令格式就可以使用自己指定的配置文件,不使用-c默认使用当前目录下的
使用下列命令可以很容易的生成配置文件:
常用配置项
个人在用配置:
以及我们可以定义
只有在使用 CLI(命令行接口)仅列出较为常用的
CONFIG 字典这是manim中的 这个字典变量里包含的各种属性和通过[CLI(命令行接口)]或是.cfg配置文件里配置的选项是一样的。 修改它十分简单,修改方式和python修改字典对象的方式是一样的:
代码中可以获取config字典的属性值 配置的优先级这三种方式,CONGFIG字典的优先级是最高的
动画速率函数(rate_functions)自定义动画速率函数可以传入0~1之间的参数t,可以定义其他参数,只要其他参数有默认值即可
Group 和 VGroup
文本和公式manim中并不实际存在文本对象。 本质上,manim中的文本包括latex都是svg图形。 manim通过调用一个名为Pango的工具将文本转化为svg,然后将其导入(通过哈希值确定其唯一命名) 查看操作系统已安装的字体可以使用这段命令行查看已安装的字体:
变形动画
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/17 6:06:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |