当前位置: 首页 > 科技观察

12万行代码堆砌出一个“蔡徐坤”

时间:2023-03-12 01:08:40 科技观察

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。有个程序员用12万行代码堆砌“蔡徐坤”,编译能过吗?!这就是:不是简单的灰度人物画!控制台也不能控制颜色!是唱歌、跳舞、说唱的密码!就连肩带也有灵魂。这类作品来自B站UP主NyeJu,他使用代码编辑器,针对不同的关键词显示不同的颜色,生成代码,然后滑动形成视频。这项技术的关键是将符合规范的代码放在正确的位置,并显示不同的颜色。也就是说,整个操作纯属人为!而且,这段代码是可以编译通过的,0错误(手动狗头):一发出来,网友纷纷表示:希望编译器没问题。另一个朋友说:希望肝脏没事。12万行代码,你太美了。当然,也有小伙伴惊呼:纯手敲?!UP太强了!不过,虽然UP的主人无疑是真正的肝帝,但还没有达到魔人的层次。UP主也简单介绍了自己的运营思路。首先,选择一个颜色主题。比如CodeBlue是UP中使用的主色,需要获取每个关键词的颜色。然后,将原始视频剪成一堆图片,识别出每张图片的像素点,匹配到最接近的关键字颜色,记录(颜色,长度)。根据(颜色,长度)生成对应的代码。这涉及两个步骤:定义一系列模式,例如“粉红色、红色、白色”是语句,“灰色、透明”是注释;使用模式匹配(颜色,长度),如果匹配成功则进行转换。而UP主的视频之所以能如此流畅,是因为他对原视频的每一帧都进行了生成代码。终于,让12万行代码滑过去,像一开始那样的歌舞rap视频就制作成功了。即便如此,B站现场的小伙伴们还是闻到了应接不暇的感觉。比如评论区有一个5级账号提供了一个新鲜的思路:不需要专业的团队作为素材,大概是因为UP已经up了整整一年了。于是,带着小伙伴们的好奇,量子比特亲自采访了UP主NyeJu。NyeJu说,整个项目的完成只用了大约一周的时间。毕竟这12万行代码不是手工敲出来的,而是生成的。另外,NyeJu也解释说,他没有选择现在比较流行的其他材质,因为蔡徐坤的材质比较干净,颜色的数量也比较适中。其他材料不是很合适。比如《黑棺材》里的颜色太多,《坏苹果》里的文字太少。(我对蔡徐坤没有恶意。)评论区也有小伙伴说明了难处:能编译通过,我很意外。对此,NyeJu表示,其实项目一开始的底线就是可以编译,否则VSCode的代码高亮会抽搐。原理还是基于语法规则。比如const和static可以无限叠加,标识符和字符串可以任意长。基于这些,可以构建所需颜色的长度。OneMoreThing那么,为什么要开这样的脑洞呢?在采访中,NyeJu也给出了答案:受到“何同学”最新视频-《我用一万行备忘录做了个动画…》的启发,他想做一个更厉害的。另外,虽然给大家展示的代码是C++,但NyeJu在日常编码中其实用Python的多一点,而且这个项目的C++代码也是用Python生成的。