我试着用 ChatGPT 5.4 复刻《龙珠》,结果真的做出了现实操控系统

0 阅读8分钟

小时候看《龙珠》的时候,我一直很喜欢一种很具体的画面

那种很细节的战斗控制感

手指一抬,能量球在空中拐弯

对手明明以为躲开了,下一秒又被追上

整个战斗不是平的,而是有距离、有压迫、有节奏的

周末,刚好借着ChatGPT新版本发布,快速做一版

这种只存在于动漫里的“操控感”,能不能真的在电脑前做出来?

于是我用摄像头、手势识别、前端动画和一套状态机逻辑,做了一个互动系统:

(这次完全用自然语言和AI沟通,看看最终能做出什么样的效果)

  • 人站在电脑前
  • 手指对着摄像头移动
  • 屏幕里的操气弹会跟着你的手指走
  • 左边是 Goku,右边是魔人布欧
  • 布欧不会傻站着挨打,而是会逃、会累、会撑不住
  • 最后被操气弹追上,原地爆炸

它不是一段剪好的视频,也不是一张会动的图。

它是真的可以交互、可以运行、可以不断打磨的一套系统。

先看效果(它开始有了那种小时候看动漫时才会有的感觉——不是“看到了一个技能”,而是我真的在控制这个技能)

这个项目到底做了什么?

如果用一句话说清楚,它其实是:

一个“手指控制操气弹”的互动系统。

但如果展开一点,它其实分成了四层。

第一层,是输入

摄像头识别手指位置。

手指往哪边动,操气弹就往哪边飞。

这个听起来最直观,但其实它只是入口。

第二层,是角色反应

布欧不是静态站在那里等你打。

我给它做了一整套状态变化:

  • idle
  • alert
  • evade
  • tired
  • exhausted

也就是说,它不是“会动”,而是“会反应”。

第三层,是空间感

我没有把它做成单纯的左右平移。

人物、操气弹、爆炸、烟雾,都尽量加了上下左右前后的空间关系。

这样整个场景会更像一个有深度的擂台,而不是平面拼贴。

第四层,是演出感

这个东西真正难的,不是“它能不能动起来”。

而是:它动起来以后,像不像一场战斗。


**01.**项目总览图

图 1:整个互动系统的基本场景。左侧 Goku,右侧 Buu,中间是可由手指控制的操气弹。


**02.**我后来发现,最难的根本不是“手势识别”

很多人第一反应会觉得,这种项目最难的是摄像头识别手势。

其实不是。

手势识别当然很重要,但它更像是一个“输入设备”。

真正做起来费劲的,是下面这些更微妙的东西。

  1. 操气弹怎么跟手,但又不能像鼠标指针

如果完全刚性跟随,它会很假。

如果太迟钝,又没有那种“我在控制它”的感觉。

所以最后调的不是“能不能动”,而是:

  • 远距离更快
  • 近距离更稳
  • 有一点惯性
  • 但又不会拖泥带水
  1. 布欧不能像木桩一样站着

如果 orb (操气弹)一靠近,Buu 原地不动,那整个作品体验就差了很多。

所以后面我用自然语言给它做了一整套反应逻辑:

  • 看到危险会警觉
  • 快碰到时会闪避
  • 一直逃会疲劳
  • 最后真的撑不住,变成 exhausted
  • 这时再碰到,才允许爆炸
  1. 切图不能硬切

这是很多交互项目特别容易暴露廉价感的地方。

比如:

  • orb 一近,Buu 立刻切躲避
  • 下一帧条件没了,又切回来

这种观感特别像程序,不像角色。

所以后面我专门加了:

  • enter delay
  • hold time
  • transition
  • 起伏感

让角色的状态切换更像身体反应,而不是条件判断。


**03.**状态机示意图

idle → alert → evade → tired → exhausted → hit

(这次用AI作图效率有些低,除了爆炸的换了图,其他都省事用的同一张图)

图 2:Buu 不是简单平移,而是在一套状态机里完成“警觉—闪避—疲劳—力竭—爆炸”的过程。


04. 真正让这个项目开始好玩的,是“差一点打中”

一开始我做的时候,逻辑其实很直白:

碰到就爆炸。

结果做出来以后,技术上没问题,观感上却很无聊。

因为整个过程只剩一个结论:

碰到了,炸了。

没有戏。

后来我把前期逻辑改了:

  • buu-idle
  • buu-alert
  • buu-evade
  • buu-tired

这几个阶段,操气弹都不能真正打爆它。

只要 orb 快接近,它就会立刻远离。

有时候是快速闪开,有时候甚至会像“瞬间移动”一样换到更远的位置。

结果一下就不一样了。

因为你看到的不再是“命中判定”,而是:

追逐、压迫、反应、脱离、再追逐。

直到最后,Buu 真的累了,进入 buu-exhausted

这时 orb 再碰到它,才会立刻爆炸。

这一下,整个节奏就顺了。

前面是戏。

后面才是结局。


**05.**前期追逐

视频 2:前期阶段,操气弹不断逼近,但布欧始终会在最后一小段距离内立刻闪开。


**06.**为了让它更像“战斗”,我反复修了很多小地方

很多时候,项目从“能运行”到“有质感”,差的不是大功能,而是小细节。

  1. 把人物重新拉回左右两边

有一版里,Goku 和 Buu 一度被我调得太靠中间。

画面看起来整齐,但没有战斗区。

后来我还是把它改回来了:

  • Goku 明显在左
  • Buu 明显在右
  • 中间留出大块空间给 orb 和追逐动作

这种构图一下就对了。

  1. 更加了2.5D空间感

这个看起来像小事,其实也挺影响观感。

如果人物移动大小一样,那就缺少了空间感,

后面我把这些做了微调。

  1. exhausted 后,爆炸必须够果断

另一个我后来专门修的,是最终命中的响应速度。

如果 orb 已经碰到 exhausted 的 Buu,

代码却还在等 prehit、hold、缓冲、确认,

观众会明显感觉到:

“怎么碰到了还不炸?”

后面我把 exhausted 状态下的命中优先级单独提到了最高。

只要接触,马上锁定命中点,直接进爆炸链。

这一下整个结尾就利落了很多。


**07.**优化前后对比

图 3:真正影响质感的,往往不是某个大功能,而是这些容易被忽略的小修正。


**08.**最终命中爆炸

视频 3:当前期追逐结束、布欧进入 exhausted 状态后,操气弹一接触就会立即触发爆炸。

后面我也用MiniMax测试了一版,效果也不错

图 3:MiniMax版本效果


**09.**这个项目最让人兴奋的地方

虽然这只是一个Demo,但让我上头的,不是“做了这个操控效果”。

而是我越来越清楚地感受到:

有了AI工具后,只要我们有奇思妙想,可玩性是非常多样的。

记得十几年前做类似的互动类效果,还在研究Opencv和各种开源代码

调试不同型号摄像头驱动

当时很多人觉得,做产品、做系统,第一步一定得先学代码。

但现在不是了,只要电脑里装上一套强大的 AI 工具,再加上点想象力,你完全可以像画画、搭积木一样,从零开始,先搭出一个属于自己的最小 MVP,亲手把一个想法变成可以体验、可以迭代的东西。

随着 AI 持续进化,想法和现实之间的距离,正在被快速缩短。很多过去只能想一想的东西,未来都会越来越容易被我们亲手做出来。

这个过程很难不让人着迷。


这个系统后面还可以有很多打磨的地方,比如:

  • 让空间感更强
  • 让人物演出更自然
  • 让 orb 的前后纵深更明显
  • 让爆炸、烟雾和舞台之间的关系更真实

但至少现在,它已经从一个想法,变成了一个真的能玩的东西。

如果你对这种玩法也感兴趣,欢迎点个赞,**** 给我一点鼓励。也欢迎在评论区聊聊你的脑洞和想法。需要 prompt 的话,我后面会放一个版本在公众号评论区。

谢谢你看到最后,我们下次见。

(说明:本文部分配图及演示内容素材由 AI 辅助生成,内容已由本人审核并修改。文中涉及的角色与设定   仅作灵感来源讨论与技术演示交流,不代表任何官方立场)