«

»

Feb 17 2024

用 Blender 制作一个可循环沙漠公路绿幕

偶然间看到有人发了个《奔跑的阿塔尼斯.GB》,我瞬间联想到的竟是《GO BROLY GO GO》这个梗。

那为什么不干脆自己做一个呢?

然后就遇到了一大堆大坑。其中的一个大坑就是这个奔跑用的绿幕背景该怎么搞。本文就围绕这个大坑随便嘚吧几千字。

(注1:本文非教程)

(注2:本文本该引用的图片,因为我懒而直接截图贴到 Discord 了,所以本地没有保存,我也懒得去 Discord 往回抠,直接文字描述了。对付看吧)


素材与原梗

《奔跑的阿塔尼斯.GB》

《GO BROLY GO GO》


首次尝试

在网上随便搞了一个绿幕背景,然后就做了一下。

[StarCraft] Go Go 大主教 Go Go !!!「旧版」

非常的不满意。

主要是这个绿幕背景不能循环,背景高度在开头和结尾不一致,所以每次到循环的位置时都咯噔一下子,看起来就非常的粗糙。

当然在现在这种大多数都是垃圾视频的大环境下,每天都产生大量漏洞百出的垃圾视频,平台和用户已经亢奋到巴不得直接脑子上插根安卓充电线接手机上在人脑内播放垃圾视频了,没人会在乎这种小细节,甚至都没人看我做的这种视频。


重新搜寻绿幕素材

在网上随便搜索了一下,发现几乎没有我需要的 「可循环」 的绿幕素材。

screenshot_on_b85m_by_flameshot_at_2024-02-16_22-32-40

大多数都是随便一个奇怪的片段,长度都很短,而且全部都是头尾不相同的,简单点的咯噔一下,复杂点的干脆连方向都变了,完全不知道这种限制性极强的素材在什么地方能用得到。

总之在网上找这种可循环绿幕素材这个途径行不通。


尝试自己做

算是要做个3D动画。掏出 Blender。

「路」,好解决,画个面,然后找个路的纹理贴上去就行,然后根据纹理做个首尾相接,循环就搞定了。

难点在路边,我想整个沙漠,那单纯的平面纹理就不够了。

在网上搜了一下关于 Blender 沙漠 的教程。

screenshot_on_b85m_by_flameshot_at_2024-02-16_22-32-51

screenshot_on_b85m_by_flameshot_at_2024-02-16_22-32-56

第一个,测试渲染完了,细节很好,但是主要用法是展示大沙漠里微观场景的,就和其缩略图一样。在大场景下做大背景效果很好,但是缩放小了之后发现作为沙地的效果却很差。只能说纯当练手了。

第二个,测试渲染完了,作为沙地的效果很好,但是沙地的效果是完全随机生成的,边缘不连续,接不上,没法做循环。

很明显遇到了非科班出身的人常遇到的困难。


寻求帮助

找熟人

我目前能联系的人当中,目前没有任何一个人是会使用 Blender 的。

可以说是真正意义上的 人脉匮乏,找不到 关系

中文社区

至于所谓的中文社区,QQ群,那都是吹逼饭的窝点。当年我3DS变砖时寻求帮助,顺着3ds.hack的路先加了中文区的QQ群,结果和想象中的一样,中文社区无非就是 吹牛逼 晒有钱 互相诋毁,一点帮助没获取到,还浪费了我不少时间。最后是把 3ds.hack 改成英文模式然后进了 Nintendo Homebrew 的 Discord 频道,我提出问题之后立刻就有人一步一步手把手帮忙解决问题,而且解决途中还发现我遇到的并不是很寻常的基础问题(不然怎么能卡住我)。

screenshot_on_b85m_by_flameshot_at_2024-02-16_23-41-58

screenshot_on_b85m_by_flameshot_at_2024-02-16_23-42-59

从提出问题到得到响应,用时1分钟。从提出问题到完全解决,用时43分钟。此时中文QQ群还一个屁都没崩出来。

本身被自己不懂的有一点难度的问题卡住就很难受了,网上却又存在着各种能力远比你低下的人在那不懂装懂,很可能导致你离解决方案反而越来越远。你看像 segmentfault.com 现在都是乌烟瘴气,都臭成什么样子了。

(光是当时3DS变砖后的解决办法,我当时没写博文出来,我都觉得奇怪)

总之,在中文区甭想找到什么求助。

英文社区

也不知道算是走运,还是巧合。

我的 Discord 频道列表里刚好有一个 TF2 相关的 Blender 社群。

screenshot_on_b85m_by_flameshot_at_2024-02-16_23-51-17

我还真就想不起来是为啥加了这个社群了,可能是因为看了 Pootis Engage ?

然而事情并没有像解决 3DS 变砖那样顺利。

我提出问题之后,首先跳出来的一帮人问我「为什么要做这个东西?」

哈?

然后我解释了一遍我需要做一个「可循环的沙漠公路绿幕」:其核心思想是,渲染一段以plane为底面的沙漠;沙漠上面有一个公路样式的几何图形,最好是 Cube 这种有高度的,看起来像是沙子上的路;视频结尾帧与视频开头帧相同,这样我可以无限循环这个视频,其最简单的办法是镜头最后的图形边界与开头的边界相同(其他方法亦可)。

然后得到了这么几个答案:

  • 随便渲染一下就好了,循环的时候咯噔一下,没人在意。
  • 渲染一个足够长的道路。
  • 你为什么要做绿幕,你直接在 Blender 你做完你的项目不就好了?

基本上,面对一个 目标极为明确的问题时 ,得到的答案是 不要做?

什么玩意……


继续摸索

阶段1

总之得到的帮助极为有限,多数人都是喷子状态。因为我的电脑配置是 i7-4790K + GTX1080 ,10年前的配置。虽然这个配置称霸了非常多的年份(10系显卡GTX1060霸榜一直到去年年末为止),但是放在 Blender 这种纯正的生产力场景下是很虚的。所以又冒出来一堆开喷硬件配置的,直到有人发现我在 Linux 环境下没有正确启用 Cycles 的硬件加速。

作为个生产力工具,整个社区竟然没几个人用 Linux 这一点也是够搞笑的。不过有了这个场景,我立刻就能分辨出哪些才是真正的有能力的 Blender 用户了。

搞了一宿,最后还是没搞定如何 循环 沙漠纹理。

这个时候终于有人提出新的方案了:不要用随机去渲染沙漠纹理,用内置的 海洋 去渲染。

我试了一下,海洋的渲染是基于一个固定模式的,所以其首尾的形状可以首尾相接。然后用颜色噪音把海洋渲染成土黄色。仔细一想其实海洋和沙漠是一回事,还挺有道理的。

然后这个是阶段成果。

[Blender] 在电脑前坐了一天,干到后半夜3点,就整出来2秒钟这玩意

问题出来了,因为我的目标是公路 正向/反向 的效果,所以「地平线」需要是垂直的,这就要求这个海洋要 足够宽 ,那么这个海洋的纹理就会被拉伸得,没啥效果,看着更像是 泥水 了。

此时已经是后半夜三点了。

然后我决定睡觉!

然后刚准备躺下的时候,脑子里冒出来了一个极其有意思的主意!导致我一晚上没睡好觉!

阶段2

首先,「海洋」的办法不是不行,就是实现起来可能要调教很久,效果也很一般,尤其是为了水平线而拉宽之后,效果肉眼可见的差劲。

毕竟我基础就已经很差了,就算形状搞定了,到纹理的大坑也得摔倒。

screenshot_vlcsnap-2024-01-30-19h05m30s064

screenshot_vlcsnap-2024-01-30-19h05m36s007

但是之前的方法我又搞不定边界连接的问题,无法做到循环。

然后我就想到了,或许改变一下前提。

我目前遇到的问题是,沙漠plane的边缘接不上。那假如,代表沙漠的图形没有边缘呢?

screenshot_on_b85m_by_flameshot_at_2024-02-17_01-10-41

Ta-Da!圆柱!

没错,这个就是兴奋得让我一宿没睡好觉的点子。

放弃平面的设计,做两个圆直径超大的圆柱体,一个代表沙漠,沿用旧的渲染方式;一个代表公路,嵌在沙漠里,只要位置恰当,看起来就像公路一样。

这方法甚至都不需要再移动镜头,只要让俩圆柱体旋转起来就行。

[Blender] 用了新的思路,编辑2小时,渲染1小时。

当然,缺点也是有的。圆柱体的直径必须足够大,不然看起来的确不像是平面,而是圆柱,露馅了。直径太大就导致周长特别大,那么转一圈的时长就特别长,渲染压力立刻就上来了。而且圆柱终究是圆柱,边缘怎么看都会觉得并不是地平面,而周长太大,大过头了 循环 的实用性就没了。

不过目前也就只能这样了。

阶段3

第一个大坑算是过了。

然后是给公路贴纹理。

这 TMD 作为一个 Blender 用户,应该是最简单的一个功能。

我TM不会啊!

screenshot_on_b85m_by_flameshot_at_2024-02-17_01-25-20

screenshot_on_b85m_by_flameshot_at_2024-02-17_01-25-37

我其实是要给一个圆柱的侧面贴纹理,而且还是要重复贴相同的纹理。我哪会这个! 你让我写个 CSS 还差不多!

screenshot_on_b85m_by_flameshot_at_2023-12-29_00-34-18

screenshot_on_b85m_by_flameshot_at_2023-12-29_00-49-32

总之这一块也卡了好久才搞定。

这种最基础的玩意,真的是,最好有个人能手把手教一下,把流程缕清晰了最好。

我这种瞎蒙出来的,完全不知道自己是怎么蒙出来,下次让我做一样的事情,我照旧做不出来,还是得瞎蒙。尤其是我也已经上岁数了,记忆力也差,蒙出来也想不起来过程,非常难受。

阶段4

至此坑就算是填了,把天空改成绿幕,然后速度和其他参数什么的,调整了一下就能出成果了。

然后初次渲染的时候,一遍渲染,一边尝试微调些细节。结果渲染出来的结果一塌糊涂。

我这才意识到 Blender 的渲染不是沙盒模式的,即它渲染的不是我在执行「渲染」瞬间的副本,而是正在编辑的正本。

也就是说 Blender 渲染的时候,最好完全不要动 Blender。切出去干别的,或者最好把电脑放那不要动。

这都2024年了怎么软件行业里还有这种玩意啊!


成果

随便剪了一下,做了两个示例,就发B站了。

[Blender] 可循环沙漠公路绿幕

我甚至懒得发布纯素材。

其实渲染有 Alpha 通道的视频也不是不行,但是指望我这个老电脑渲染 VP8/9 H.265 AV1 实在是太困难了。而且现在所有视频网站依旧以 H.264 为主流。

(其实主要还是我电脑带不动)

这玩意到这个阶段时,我把片段发到之前的 Discord 频道里,然后一堆人(就是之前那堆帮倒忙的)冒出来问我这这那那都是怎么实现的,尤其是对绿幕这块甚至都不知道怎么实现怎么使用。

好家伙, NLE+VFX 最基础的东西都不知道,竟然还试着在那指教我?

然后看到我在用开源的 Shotcut 作为 NLE 时竟然开喷我用不起高贵的 Adobe,这一看就是小孩没参加过工作啊,我在家用不起 Adobe 我大不了去公司用公司电脑上的 Adobe。

(原来国外社区跟国内也没什么两样,都 Toxic


使用例

除了上面那个视频带的 Senator 和 国际靶场 两个示例,我还用这个素材做了另一个视频。

Funky Town ⧸ Eurobeat Remix (Deamoz Eurobeat)

当然最初为了做这个绿幕素材的目的也没忘。

[星际争霸2] Go 大主教 Go Go !!!


结尾

这事就算了结了。

经验基本上是没累积到。我现在这个年龄,好多新知识,摸了不进脑子,除非天天摸。我现在开始担心自己以后会不会糊涂得像家里大人一样,到了岁数后连手机怎么接打电话都不会,但是刷短视频乱花钱比谁都猛。

国内国外社区都这么 Toxic 这事看来我是可以确定了,国外的月亮不比国内圆,但国外的屎一样臭。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据