前段时间实习太忙,欠了好多推送没有写,这两天算是“浮生偷得半日闲”,把之前本科时的一些练习整理了一下,做成一个“随缘更新”的指南,全是干货,又干又硬的那种(看的人多的话就出视频教程)写给对Grasshopper做动画感兴趣的朋友们。
两个视频都已经上传了B站,https://space.bilibili.com/430535476,也可点击文末“阅读原文”(建议大家去B站耳机服用~)第一个是平时小练习的集锦,重新做了一下BGM,现在回头看看有些too young,too naive……第二个是以“圆”为主题的创作,配上我最喜欢的Daft Punk,当时两天一夜没怎么睡,只用了24小时工时就完成了。
【集锦】本科阶段的Grasshopper动画练习
Circle Animation——参数化MG动画
Grasshopper在大家的认知和定位中,还是作为一个数字化设计的工具存在,拿来做动画,确实有些“不务正业”,(方案那么酷,Presentation怎么能少得了动画)想来自己虽然不是建筑生,最早也是被烟灰大神的gh视频大作吸引才入的坑,虽然在Grasshopper中做动画并不方便,但是呢,要做也是可以的,传递设计的逻辑性,表达动态的数据之美,展现Generative Design的生成过程……接下来我就讲讲一些技术的细节。
如果大家有疑问或者更好的思路,非常欢迎在公众号后台回复“UDM Club”,加入群聊和我们交流,相关插件也会在群内分享。
方法1:录屏
这个是最直接的想法,直接录屏,我习惯用的录屏软件是Bandicam。如果你并不追求精致的制作程度,或者你想录制用kangaroo 1 或是别的无法被Number Slider驱动的插件(如Culebra)制作的动画,那你可以选择直接录屏。此时你录屏的分辨率就取决于你的显示器了,更大的显示器能获得更高分辨率的画质。一般我会选择用TopMostViewport或者Ameba创建一个单独的视窗,然后指定录屏软件对这个视窗工作。
视窗确定以后,就可以让你的模型动起来了,这个时候你也有两种方法可以驱动模型,第一种就是手动拉动Slider,如果你觉得在Gh窗口里调整不方便的话,可以把Slider外置到Rhino视窗。右键Slider——Publish To Remote Panel,并在选项中调出Grasshopper面板,这样就可以在Rhino视窗调整了。
第二种方法就是用Time驱动的你的参数化模型,让它自己动起来,你只要录屏就可以了,这里提供3种不同的用Time驱动的方法,分别用了Grasshopper原生电池,Kangaroo中的Counter,还有Heteroptera的TapBuffer。大家可以根据自己的需要去修改Time的刷新率。使用Time驱动的优势在于这些数值是可以无限增长的,当你在做一个无限循环的动画或者是一个Generative Design的时候,不会像Slider一样受制于一个既定的区间。
方法2:Number Slider Animation
第2种方式就是借助于Number Slider 自带的Animate,这种方式就是把动画的每一帧都导出成图片,最后到视频软件中合成。想做某个参数的动画时,就在对应控制的Slider上右键点击即可弹出视窗,点击“OK”就会输出,这个视窗需要修改的参数很多,我简单介绍一下:
第1个就是文件的储存位置,动画会以单帧图片的形式存放在指定位置,一般指定一个文件夹存放即可。
第2项是文件的命名,默认格式是.bmp,我为了使导出的图片方便查看,在AI和PS中也能使用,就把文件格式改成了.png
第3项是视窗和分辨率,选择你要录制的视窗,动画最后呈现的也将会是对应视窗的对应显示模式。分辨率可以自定义输入,也可以点击右边的按钮获得Rhino中那个视窗的大小。
第4项是总的帧数,这一项非常重要,决定了最后合成的动画在速率上的呈现效果。要综合考虑数值对模型的影响程度、画面的变化速率、视频最后的帧速率。如果你输入Count为100,你就会获得编号从0到100的101张图片,那么如果你的视频的帧速率是25的话,这段视的持续时间就是 4:01,这时候千万别忘了检查Number Slider的区间还有精度,如果你的Number Slider设置的是从0~1的整数(int),那么你是不可能输出100帧连续的画面的,Slider会在0和1之间重复,要想避免这一点,就要提高Slider的精度,改成双精度的小数(float),以此类推,想要在有限的区间内输出更多的帧,就要设置对应的Slide的精度。想要画面运动的缓慢,就要把帧数调高,反之则减少。
接着再讲讲镜头和视角,一般基础的动画有两种做法,第一种情况就是镜头不动,画面主体物进行变化,这时候你往往需要控制和储存相机的位置,从而在工作流的修改和迭代中保持画面大的连续性。
在Rhino中的话,点这个小相机就可以啦,弹出面板,点击储存为,并命名这个新的视图,储存完以后记得锁定视图。当然你也可以对一段动画设置好几个相机位置,相当于“多机位拍摄”。在后期Number Slider的选项中就可以选择对应需要的视角。
第二种情况,主体物不动,镜头运动。Grasshopper并没有自带控制相机的功能,所以如果不写代码的话,就要通过插件来帮助我们控制相机的位置。我常用的控制相机位置的插件是Heteroptera、Animation、还有VRay。
Heteroptera中主要用Camera Crane这个电池,而Animation整个插件都是和动画相关,要用到两个电池的组合,(VRay的动画输出和Number Slider无关,我们下次再谈)。
主要的参数其实大同小异,相机的位置,目标位置,相机焦距。控制的就是相机摆在哪里,对着哪里,能看到的视野的范围,都是以点的形式输入。
而机位的切换则可以通过Pufferfish插件中的Tween Two Points或者Tween Two Numbers来实现,同样Pufferfish中还有很多插件可以创造数字、向量、区间、曲线、颜色、曲面、网格之间的补间动画,非常简单易用,大家可以自行尝试。
通常情况下,我们的动画不是匀速运动的,匀速使人感到乏味,而在整体系统中往往也有多个参数在变化,这时候我们就要用到Graph Mapper和Remap,通过Graph Mapper,动画的节奏能够产生一些变化,而remap则可以把一个参数映射到另一个区间上,这些都是基础,我就不多赘述了。
另外一个值得使用的就是Stream Filter和Stream Gate,可以使你在动画的进程中切换视角、算法、或是配色方案,通过 和-可以扩展输入和输出,而控制“门”则可以通过数学上的一些比大小或是取整数来实现。
最后讲一讲显示和材质,网格的话顶点着色,花样比较多,曲面的话可以用自带的Custom Preview,可以结合Material做一些简单的效果。之前提过的Human插件中也有不少关于显示的元件,大家可以自行尝试,我最喜欢的是Custom Preview Lineweights,用来显示曲线非常方便,而且对内存的占用很小。
本期“不务正业”的指南到这里就告一段落了,下一期更新不知道是什么时候了,之后大概会研究一下VRay For