manim 动画效果总结
<p><code>ManimCE</code>作为一个强大的动画制作框架,它为创作者提供了丰富多样的动画效果,无论是<strong>文字</strong>、<strong>图形</strong>还是其他元素,都能通过这些动画效果呈现出生动、有趣的视觉体验。</p><p><font style="color: rgba(64, 64, 64, 1)">本文将</font>详细总结<code>ManimCE</code>(<code>v0.19.</code>0版本)中常见的动画效果,并分析它们的应用场景和带来的视觉效果,以及我们在制作数学动画时如何选择动画效果的建议。</p>
<h1 id="1-动画效果分类">1. 动画效果分类</h1>
<p><code>ManinCE</code>中提供了丰富的动画效果,总结起来大致可分为<strong>7类</strong>。</p>
<h2 id="11-文字动画让内容活过来">1.1. 文字动画:让内容"活"过来</h2>
<h3 id="111-addtextletterbyletter效果">1.1.1. AddTextLetterByLetter效果</h3>
<p>当你需要逐字显示一段文字,比如在介绍一个概念或者逐步展示一个过程时,<code>AddTextLetterByLetter</code>动画效果非常合适。</p>
<p><code>AddTextLetterByLetter</code>的<strong>视觉效果</strong>是文字会逐个字母依次出现,给人一种逐步展开、逐步深入的感觉。</p>
<p>这种效果可以让观众更好地跟随文字内容,避免一次性出现大量文字带来的视觉疲劳。</p>
<h3 id="112-removetextletterbyletter效果">1.1.2. RemoveTextLetterByLetter效果</h3>
<p>与添加文字相反,当你需要逐字移除文字时,比如在展示一个过程的结束阶段,或者需要逐步清理屏幕上的文字以便展示新的内容时,<code>RemoveTextLetterByLetter</code>动画效果就很实用。</p>
<p>它使得文字逐个字母消失,给人一种逐步收尾的感觉,让画面的过渡更加自然。</p>
<h3 id="113-write效果">1.1.3. Write效果</h3>
<p><code>Write</code>是最常见的文字创建动画,适用于需要快速展示一段文字的场景,比如标题、关键点等。</p>
<p>它会让文字像用笔书写一样,一笔一划地出现,给人一种书写的感觉,比较自然流畅。</p>
<h3 id="114-unwrite效果">1.1.4. Unwrite效果</h3>
<p><code>Unwrite</code>用于移除文字,和 <code>Write</code> 动画相对应,适合在需要快速清理文字的场景中使用。</p>
<p>它的效果是使得文字会像被擦除一样,一笔一划地消失,效果比较直观。</p>
<h2 id="12-图形动画从无到有的艺术">1.2. 图形动画:从无到有的艺术</h2>
<p>图形的动画效果比文字更加丰富一些,主要有:</p>
<h3 id="121-create效果">1.2.1. Create效果</h3>
<p>当你需要创建一个图形,比如圆形、矩形等,<code>Create</code>动画效果是最常用的。</p>
<p>它适用于任何需要展示图形的场景。</p>
<p>它会让图形会从无到有,逐步绘制出来,给人一种图形被“画”出来的感觉,视觉上比较直观。</p>
<h3 id="122-uncreate效果">1.2.2. Uncreate效果</h3>
<p>与 <code>Create</code> 动画相对应,<code>Uncreate</code>用于销毁图形,比如在需要移除某个图形以便展示新的图形或者内容时。</p>
<p>它使得图形逐步被“擦除”,效果比较自然。</p>
<h3 id="123-drawborderthenfill效果">1.2.3. DrawBorderThenFill效果</h3>
<p>当你需要创建一个图形,并且希望先展示它的轮廓,然后再填充颜色,<code>DrawBorderThenFill</code>动画效果就很合适。</p>
<p>比如在展示一个复杂的图形结构时,先展示轮廓可以让观众更好地理解图形的形状。</p>
<p>它使得图形的轮廓先被绘制出来,然后逐渐填充颜色,给人一种逐步构建的感觉,视觉上比较有层次感。</p>
<h3 id="124-showincreasingsubsets效果">1.2.4. ShowIncreasingSubsets效果</h3>
<p><code>ShowIncreasingSubsets</code>适用于展示一个集合或者一组元素逐步增加的场景,比如在数学中展示集合的包含关系,或者在展示一个系统逐步扩展时。</p>
<p>它使得元素逐步增加,观众可以清晰地看到集合的变化过程,视觉上比较直观。</p>
<h3 id="125-showsubmobjectsonebyone效果">1.2.5. ShowSubmobjectsOneByOne效果</h3>
<p>当你需要逐个展示一个对象的子元素时,比如一个复杂的图形由多个部分组成,<code>ShowSubmobjectsOneByOne</code>动画效果可以很好地展示每个部分。</p>
<p>它使得子元素逐个出现,观众可以更好地关注到每个部分的细节,避免一次性展示太多内容带来的视觉混乱。</p>
<h3 id="126-spiralin效果">1.2.6. SpiralIn效果</h3>
<p>当你需要以一种比较有创意的方式展示一个图形或者对象时,<code>SpiralIn</code>动画效果可以带来独特的视觉效果。</p>
<p>比如在展示一个复杂的图形或者一组元素时,可以用螺旋的方式吸引观众的注意力。</p>
<p>它使得对象以螺旋的方式进入画面,给人一种动态的、吸引眼球的感觉,视觉上比较新颖。</p>
<h2 id="13-淡入淡出优雅的过渡">1.3. 淡入淡出:优雅的过渡</h2>
<h3 id="131-fadein效果">1.3.1. FadeIn效果</h3>
<p><code>FadeIn</code>适用于需要让一个对象逐渐出现的场景。</p>
<p>比如在展示一个新的元素或者内容时,淡入效果可以让观众更好地关注到这个新出现的对象。</p>
<p>它使得对象从透明逐渐变为不透明,给人一种平滑的出现感觉,视觉上比较柔和。</p>
<h3 id="132-fadeout效果">1.3.2. FadeOut效果</h3>
<p>与 <code>FadeIn</code> 相对,<code>FadeOut</code>用于让对象逐渐消失,比如在移除一个不再需要的对象时,淡出效果可以让画面的过渡更加自然。</p>
<p>它使得对象从不透明逐渐变为透明,最后消失,效果比较平滑。</p>
<h2 id="14-生长动画赋予对象生命力">1.4. 生长动画:赋予对象生命力</h2>
<h3 id="141-growarrow效果">1.4.1. GrowArrow效果</h3>
<p>当你需要展示一个箭头,比如在指示方向或者展示一个过程的流动方向时,<code>GrowArrow</code>动画效果可以很好地突出箭头的作用。</p>
<p>它使得箭头从一点开始,逐渐生长出来,给人一种动态的指向感,视觉上比较直观。</p>
<h3 id="142-growfromcenter效果">1.4.2. GrowFromCenter效果</h3>
<p><code>GrowFromCenter</code>适用于任何需要从中心生长的对象,比如一个圆形或者一个图形,这种动画效果可以让对象的出现更加自然。</p>
<p>它使得对象从中心开始,逐渐向外扩展,给人一种从内到外生长的感觉,视觉上比较有层次感。</p>
<h3 id="143-growfromedge效果">1.4.3. GrowFromEdge效果</h3>
<p>当你需要从边缘生长一个对象时,比如一个图形或者一条线,<code>GrowFromEdge</code>动画效果可以很好地突出对象的起点。</p>
<p>它使得对象从边缘开始,逐渐向中心生长,给人一种从外到内的感觉,视觉上比较有方向性。</p>
<h3 id="144-growfrompoint效果">1.4.4. GrowFromPoint效果</h3>
<p><code>GrowFromPoint</code>适用于需要从一个特定点生长的对象,比如在展示一个过程的起点时,这个动画效果可以很好地突出起点的作用。</p>
<p>它使得对象从指定的点开始,逐渐生长出来,给人一种从一点扩散的感觉,视觉上比较有焦点。</p>
<h3 id="145-spininfromnothing效果">1.4.5. SpinInFromNothing效果</h3>
<p>当你需要以一种比较有创意的方式展示一个对象时,<code>SpinInFromNothing</code>动画效果可以让对象以旋转的方式出现,吸引观众的注意力。</p>
<p>它使得对象从无到有,以旋转的方式进入画面,给人一种动态的、吸引眼球的感觉,视觉上比较新颖。</p>
<h2 id="15-高亮动画抓住观众的眼球">1.5. 高亮动画:抓住观众的眼球</h2>
<h3 id="151-applywave效果">1.5.1. ApplyWave效果</h3>
<p>当你需要突出显示一个对象,比如在讲解一个重点内容时,<code>ApplyWave</code>动画效果可以很好地吸引观众的注意力。</p>
<p>它使得对象像被波浪击中一样,产生波动的效果,给人一种动态的、被强调的感觉,视觉上比较吸引眼球。</p>
<h3 id="152-circumscribe效果">1.5.2. Circumscribe效果</h3>
<p><code>Circumscribe</code>适用于需要突出显示一个对象的边界,比如在展示一个图形或者一个区域时,这个动画效果可以很好地突出边界的作用。</p>
<p>它使得对象的边界被一个圆形或者矩形框住,并且会有一些动态的效果,比如闪烁或者移动,让观众的注意力集中在对象的边界上,视觉上比较直观。</p>
<h3 id="153-flash效果">1.5.3. Flash效果</h3>
<p>当你需要快速吸引观众的注意力时,比如在展示一个关键点或者一个重要的变化时,<code>Flash</code>动画效果可以快速突出显示对象。</p>
<p>它使得对象快速闪烁几下,给人一种强烈的视觉冲击,吸引观众的注意力,视觉上比较直接。</p>
<h3 id="154-focuson效果">1.5.4. FocusOn效果</h3>
<p><code>FocusOn</code>适用于需要让观众的注意力集中在某个特定区域时,比如在讲解一个复杂的图形或者一个系统时,这个动画效果可以很好地突出重点区域。</p>
<p>它使得画面聚焦在对象上,其他部分会模糊或者变暗,让观众的注意力集中在对象上,视觉上比较有层次感。</p>
<h3 id="155-indicate效果">1.5.5. Indicate效果</h3>
<p>当你需要突出显示一个对象,比如在讲解一个重点内容时,<code>Indicate</code>动画效果可以很好地吸引观众的注意力。</p>
<p>它使得对象有一些动态的效果,比如闪烁或者变色,让观众的注意力集中在对象上,视觉上比较直观。</p>
<h3 id="156-showpassingflash效果">1.5.6. ShowPassingFlash效果</h3>
<p><code>ShowPassingFlash</code>适用于需要展示一个对象的路径或者轨迹时,比如在展示一个运动过程或者一个变化过程时,这个动画效果可以很好地突出路径的作用。</p>
<p>它使得对象有一道动态的闪光效果,沿着路径移动,让观众的注意力集中在路径上,视觉上比较直观。</p>
<h3 id="157-wiggle效果">1.5.7. Wiggle效果</h3>
<p>当你需要让一个对象产生一种动态的、活泼的感觉时,比如在展示一个有趣的元素或者一个动态的过程时,<code>Wiggle</code>动画效果可以很好地突出对象的活泼性。</p>
<p>它使得对象像被晃动一样,产生一些小幅度的抖动效果,给人一种活泼、动态的感觉,视觉上比较有趣。</p>
<h2 id="16-旋转动画动态展示空间关系">1.6. 旋转动画:动态展示空间关系</h2>
<h3 id="161-rotate效果">1.6.1. Rotate效果</h3>
<p>当你需要让一个对象旋转时,比如在展示一个三维物体的旋转,或者一个图形的旋转变化时,<code>Rotate</code>动画效果是最常用的。</p>
<p>它使得对象按照指定的角度和方向旋转,给人一种动态的、变化的感觉,视觉上比较直观。</p>
<h3 id="162-rotating效果">1.6.2. Rotating效果</h3>
<p><code>Rotating</code>适用于需要让一个对象持续旋转的场景,比如在展示一个动态的过程或者一个旋转的机械结构时,这个动画效果可以让对象持续旋转,吸引观众的注意力。</p>
<p>它使得对象持续旋转,给人一种动态的、持续变化的感觉,视觉上比较有节奏感。</p>
<h2 id="17-移动动画讲述对象的故事">1.7. 移动动画:讲述对象的故事</h2>
<h3 id="171-movealongpath效果">1.7.1. MoveAlongPath效果</h3>
<p>当你需要让一个对象沿着一条特定的路径移动时,比如展示一个物体的运动轨迹、一个粒子在曲线上的运动,或者一个角色沿着某个路径行走时,<code>MoveAlongPath</code>是非常合适的选择。</p>
<p>使用<code>MoveAlongPath</code>,你可以定义任意形状的路径,比如直线、曲线、折线或者复杂的几何形状。</p>
<p>对象会沿着这条路径平滑地移动,给人一种物体在受引导下运动的感觉。</p>
<p>并且,对象在路径上的移动速度可以调整,你可以让它匀速移动,也可以设置加速或减速的效果。</p>
<p>这种动态感可以很好地模拟真实的物理运动,比如一个物体在重力作用下下落,或者一个物体在弹簧力作用下往复运动。</p>
<h3 id="172-phaseflow效果">1.7.2. PhaseFlow效果</h3>
<p>当你需要让一个对象沿着复杂的路径或者流线移动时,比如在展示一个粒子的运动轨迹,或者一个物体在流体中的运动路径时,<code>PhaseFlow</code>动画效果可以很好地模拟这种复杂的运动。</p>
<p>它使得对象沿着预设的路径或者流线移动,路径可以是曲线、折线或者其他复杂的形状,给人一种物体在受力或者受引导下运动的感觉,视觉上比较真实。</p>
<h1 id="2-动画效果选择建议">2. 动画效果选择建议</h1>
<p>在使用 <code>ManimCE</code> 制作动画时,选择合适的动画效果是非常重要的。</p>
<p>以下是一些<strong>选择动画效果</strong>的建议:</p>
<h2 id="21-根据内容的重要性选择">2.1. 根据内容的重要性选择:</h2>
<ul>
<li>如果是<strong>关键内容</strong>,比如标题或者重要的概念,可以选择比较突出的动画效果,比如<code>Flash</code>、<code>Circumscribe</code>或者<code>Indicate</code>,这些效果可以快速吸引观众的注意力。</li>
<li>如果是<strong>辅助内容</strong>,比如背景元素或者过渡内容,可以选择比较柔和的动画效果,比如<code>FadeIn</code>或者<code>GrowFromCenter</code>,避免过于抢眼的动画分散观众的注意力。</li>
</ul>
<h2 id="22-根据内容的类型选择">2.2. 根据内容的类型选择:</h2>
<ul>
<li>对于<strong>文字内容</strong>,<code>Write</code>和<code>Unwrite</code>是比较常用的选择,因为它们可以很好地模拟书写和擦除的过程,让观众更容易跟随内容。</li>
<li>对于<strong>图形内容</strong>,<code>Create</code>和<code>Uncreate</code>是比较直观的选择,因为它们可以很好地展示图形的绘制和消失过程。</li>
<li>如果需要展示一个<strong>集合</strong>或者<strong>一组元素</strong>的变化,<code>ShowIncreasingSubsets</code>和<code>ShowSubmobjectsOneByOne</code>是不错的选择,因为它们可以让观众清晰地看到元素的变化过程。</li>
</ul>
<h2 id="23-根据动画的目的选择">2.3. 根据动画的目的选择:</h2>
<ul>
<li>如果是为了<strong>吸引观众的注意力</strong>,可以选择比较有创意的动画效果,比如<code>SpinInFromNothing</code>、<code>Wiggle</code>或者<code>ApplyWave</code>,这些效果可以带来独特的视觉体验。</li>
<li>如果是为了<strong>展示一个动态的过程</strong>,比如物体的运动或者变化,可以选择<code>MoveAlongPath</code>、<code>PhaseFlow</code>或者<code>Rotate</code>,这些效果可以很好地模拟动态过程。</li>
<li>如果是为了<strong>强调某个对象或者区域</strong>,可以选择<code>FocusOn</code>、<code>Circumscribe</code>或者<code>Flash</code>,这些效果可以很好地突出重点。</li>
</ul>
<h2 id="24-根据整体风格选择">2.4. 根据整体风格选择:</h2>
<ul>
<li>如果你的动画整体风格比较<strong>简洁</strong>,可以选择比较平滑的动画效果,比如<code>FadeIn</code>、<code>FadeOut</code>或者<code>GrowFromCenter</code>,这些效果可以让画面的过渡更加自然。</li>
<li>如果你的动画整体风格比较<strong>活泼</strong>,可以选择比较动态的动画效果,比如<code>Wiggle</code>、<code>ApplyWave</code>或者<code>Rotating</code>,这些效果可以带来更加生动的视觉体验。</li>
</ul>
<h2 id="25-避免过度使用动画">2.5. 避免过度使用动画:</h2>
<ul>
<li>动画虽然可以增强视觉效果,但<strong>过度使用</strong>可能会让观众感到<strong>疲劳</strong>。在选择动画效果时,尽量保持简洁明了,避免过多复杂的动画效果同时出现。</li>
<li>如果一个场景中已经有多个动画效果,可以适当<strong>减少</strong>动画的<strong>复杂度</strong>,或者选择比较柔和的动画效果,让观众的注意力集中在内容本身。</li>
</ul>
<h1 id="3-总结">3. 总结</h1>
<p><code>ManimCE</code> 提供了丰富多样的动画效果,每种动画效果都有其独特的应用场景和视觉效果。</p>
<p>通过合理选择动画效果,可以让动画更加生动、有趣,同时也能更好地突出内容的重点。</p><br><br>
来源:https://www.cnblogs.com/wang_yb/p/18886791
頁:
[1]