薛山

魔方玩家在我看来分为三种,一是不懂原理的佛系玩家,三阶魔方可能都要拧很久才能还原,第二种是明白怎幺玩的玩家,其实还原一个被打乱的魔方就是做一道层先法的数学题。而第三种就是像我这样虽然不懂解密,但会用Blender做一个魔方来让它“自动还原”的“高阶玩家”,本期我就来教大家怎样实现这一效果,轻松制霸朋友圈。

第一步:制作魔方的小方块

这次的教程基于三阶魔方来设计,三阶魔方总计由3×3×3,也即27个小方块组成,所以我们首先要做一个单独的小方块,可以利用Blender默认的方块来进行设计,但建议大家养成严格恪守现实比例的习惯,对于魔方来说,单独的小方块可以近似取一个1cm边长,应用缩放后加载一个倒角修改器,调整数值后进入编辑模式,将所有面内插一定范围再沿法向向内挤出,就能获得如图1的效果了,这个内嵌的面就是我们魔方的颜色面(如图1)。

第二步:上色并制作三阶魔方

因为我们制作的魔方是六面体,所以只需要给小方块的每个面赋予不同的颜色,再堆叠起来就满足魔方的要求了。首先我们要给魔方做一个黑色的基本色,也就是边框的颜色,然后可以在编辑模式下给每一个内嵌面新增不同颜色的材质,在这里我选择的是黑白红绿蓝黄紫。

这时候有一个非常关键的操作,如图2所示,将小方块的旋转属性从默认的XYZ欧拉切换为四元数运算WXYZ,只有这样才能保证我们后续“拧魔方”的操作不会出现莫名其妙的旋转方向问题。

完成设置后,如图3所示,为小方块在X、Y、Z方向以1个单位的间隔分别添加3个数量的阵列,这样我们的魔方就算是整体完成了。当然,如果想要获得更真实的视觉效果,还可以通过着色器来添加金属度、糙度、凹凸等细节,在这里大家就自由发挥吧,我们接下来就做魔方的旋转效果。

第三步:间隔数帧为魔方增加旋转效果

应用所有修改器之后,首先是将魔方的原点设置为几何中心,也就是整个魔方的中心点,这个步骤十分关键。完成后进入编辑模式全选所有面,按松散块分离每一个小方块,这时候所有小方块的原点都在大魔方的中心,所以它们都会整齐地以中心为基点按X、Y、Z轴进行旋转,符合魔方的运转方式(图4)。

接下来的操作就简单了,首先是全选所有小方块,并在第一帧打上旋转关键帧,然后到你想要的帧数,比如第10帧,开启透视模式的情况下全选任意面的9个小方块沿轴旋转,就能得到如图4的效果了,这里要注意,需要如图5所示,在时间轴里将所有方块关键帧运动插值类型从默认的贝塞尔切换到线性,不然会出现小方块之间有时间差的问题。接下来只需要每间隔10帧,选不同的面以不同的轴进行旋转,记得一定要全选所有方块后再打上旋转关键帧,一般来说魔方的旋转都是以90°为单位,可以自由发挥,最后一次旋转甚至可以有一定的角度错位,可以增强真实感。

不过如图6所示,旋转后的方块背面颜色也显现了出来,而现实生活中的魔方内部应该是黑色的,所以这里也需要进行修改,我们回到第一帧,全选所有小方块进入编辑模式,选中你能看到的全部非黑色面,然后反选,如图5所示。再将这些面赋予黑色材料,也就是我们最开始的框架材料,这样一来内部就全部变成了黑色,无论怎幺旋转也不再受影响。

至此,拧魔方的工作就基本完成了,但播放后你可能会发现一个问题:这是把已还原的魔方拧乱的操作呀,我要的可是跟这相反的效果!解决方法有两个,其一是输出后在Premiere Pro等视频剪辑软件中进行倒放处理,这属于已经输出才发现问题,又不想再重新输出一遍的“懒人急救法”。

其二是全选所有小方块,在时间轴上先把所有帧往前移,让第一帧位于原本最后一帧的位置,比如第一个关键帧在第1帧,最后一个在第100帧,那就把第一个关键帧移动到第100帧的位置,然后指针停留在第100帧,保持所有关键帧全选的状态,以-1倍进行缩放,这时候你会发现所有帧以第100帧为原点进行了反向排列,这时候再从头播放就可以看到魔方的旋转变成了从混乱到整齐,整个效果也就完成了。

本章小结

不注重几个小细节就会导致失败

这次的效果虽然看起来并不复杂,但如果没有注重细节就很容易出现问题,比如所有原点必须统一在中心,旋转方式必须是四元数运算WXYZ,关键帧插值必须是线性等等,稍有偏差就会出现问题,影响最终效果甚至无法正常输出,这也反映出一个现实:Blender是一款逻辑较为严密的软件,设计者的思路必须足够清晰,才能得到想要的效果,哪怕这个效果很简单。