[动画] 魔方动画的K帧方法(以C4D为例)

查看:742 |回复:2 | 2022-8-12 12:35:49

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

x
QQ浏览器截图20220812122738.jpg

关于魔方的动画怎么K这个问题,看似简单但其实比并不轻松,试过各种各样的方法之后总结下来,能解决长步骤连续转动问题的基本只有两个方法:直接K帧和Python。编程魔方有一个现成的韩国大神的工程,不过玩不太来,最后下来对我而言最有效率的反而是手动K帧。今天这篇文章就简单介绍一下如何用直接K帧法制作魔方动画。

准备魔方工程
完成魔方的建模后将26个块的轴心都归位到魔方轴心处。这个没有什么快捷的方法,需要启用轴心,在坐标管理器中一个一个手动归零位置坐标和角度坐标。
别的没要求。
1.jpg

这里会提供一个我自己做的实例工程。布线还算标准,可以自己添加渲染器细分tag。
链接:https://pan.baidu.com/s/1z1Tt3763dfQveS9yyYTyew?pwd=9nfy提取码: 9nfy


欧拉角与万向节死锁
在魔方动画的制作过程中总是步骤一多总是容易出现一些不规矩转动的块,其实是因为动态欧拉角中出现了万向节锁死的现象。让我们首先用一个简单的物体演示一下。
首先我们新建个立方体,然后K一个绕X轴转90°的动画

这在数值坐标上体现为P轴增加了90度


接着我们用旋转工具让立方体绕Y轴转90°,K个动画。


接着,立方体便以一种奇怪的偏角转动了过去


这是其坐标发生的变化
此时遇到的问题就是万向节死锁现象。立方体的转动失去了一个自由度。
让我们回到第一步绕X轴之后的阶段,这次我们直接修改属性面板上的HPB参数。看看立方体会如何转动。


可以发现,当我们修改H和B的数值时,立方体都是水平旋转的。因为P轴旋转了90度,导致B轴与水平面平行,而因为HPB的旋转顺序导致H轴永远是水平面转动,此时立方体有了两个水平旋转的轴,因此失去了第三个方向的旋转轴,也就是发生了万向节死锁现象。更加详细的原理可以看这篇文章:
https://blog.csdn.net/AndrewFan/article/details/60981437#

以万向节锁为关键词可以很快找到大量相关资料。(我好像没有介绍欧拉角是什么概念,算了不重要了)

这并不是C4D的专属bug,所有依托欧拉角的DCC软件都会遇到这些问题。对我们做魔方动画而言只要知道在坐标面板发生了什么就足够了。当然还有个一步到位的办法就是用四元旋转,不过我很讨厌这东西,因为你没办法做非线性动画。这方面要求不高的话用四元可以省很多事。

对我们而言,最简单的办法就是,把下一步的关键帧往前复制一份,然后倒回去90度就行了。
这里的倒回90度是在数值面板修改数值倒回90度。以我们的这个例子就是P轴减90度。


这样我们就得到了四个关键帧,第一步旋转和第二步旋转之间隔开了一段时间,在这段时间里立方体没有发生任何转动。
但这并不代表没有任何变化。立方体的H和B的数值都发生了一定的变化。叠加起来表现为立方体没有产生转动,其实这里已经在悄悄调整轴向了。然后立方体再在P轴上旋转90度。
所以我们做的就是把调整轴向和旋转的两个步骤分开,保证旋转的时候只有一个轴的数值是在变化的,就可以保证旋转的姿态正确了。



开始实操
了解了万向节死锁现象之后这里提供一个建议,做魔方动画的时候最好面向B轴,因为顺序来讲B轴的优先级是最后的,最容易出问题,而魔方的操作中F和B的操作是比较少的,这个工作方向可以有效减少出问题的概率但也仅限减少。
我们按照旋转25帧间隔5帧,一秒30帧的节奏来做。用分钟花式的下一期来演示一下。


首先,我们将26个块的3个属性全部打上关键帧,由于C4D中的自动曲线的特性,所有块的关键帧位置一致才能保证节奏一致。每一步都要对所有块打关键帧。
然后选中R层的9个块,旋转180度,在25帧打关键帧,依然要26个块的3个旋转属性都打关键帧。
然后将25帧的关键帧按住CTRL复制到30帧处。
接着做下面的步骤,选中要旋转的块然后K帧,然后复制到5帧后。每做完一步倒回去看看是否有姿态不对的块。
做到第六步也就是F步骤时出现了错乱的块。


首先选中一个位置错乱的块,在步骤的末尾帧修改P轴参数,看看其旋转方向是否和这一步的转动方向一致。
如果一致,就把这个块的这个关键帧复制到前边替换掉,然后修改P轴数值对齐位置。(示例中E.7出了问题)(只能修改数值,旋转工具不行,旋转工具会自动计算欧拉角)
如果不一致那就反过来,把前面的帧复制到后边然后改P轴。(示例中J.3)
因为万向节死锁可能出现在步骤前的帧也可能在步骤后,这个看情况。
(至于为什么看P轴,这是由旋转顺序决定的,要改的永远是第二个方向)
修改后接着做后面的步骤即可。将步骤末尾的帧全部复制到五帧后然后隔25帧再旋转K下一步操作。遇到有问题的块就按这个办法来。做一步调一步。

除了替换关键帧以外还有一个办法。就是把P轴方向没问题的H轴和B轴数据输入到有问题的帧也能解决问题。这样就不需要点选复制关键帧,只要在视图选中有问题的块就能直接解决。错乱姿态中行动同步的块往往H轴和B轴数值时一样的,因此可以用手动输入数值的方法批量操作。


2022-8-12 12:35:49  
 赞 赞 2

使用道具 登录

2个回答,把该问题分享到群,邀请大神一起回答。
2#
学到了
回复 收起回复
2025-1-15 01:19:30   回复
 赞 赞 1

使用道具 登录

3#
回复 收起回复
2025-3-26 11:27:44   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

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

本版积分规则

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