news 2026/9/3 13:51:11

从屏幕里跑出来:破屏视频合成的三条技术路线与实战拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从屏幕里跑出来:破屏视频合成的三条技术路线与实战拆解

最近刷到“劈叉舞的初音,但是真从屏幕里跑出来了”这类标题时,我第一反应并不是“初音这个动作好不好看”,而是“这到底是怎么做出来的”。因为要让观众相信一个二维或 3D 角色真的从屏幕平面里钻出来,不是一个滤镜就能解释的事。它背后一定涉及角色分割、遮挡关系、图像修复、运动匹配和边缘稳定,缺一层都会穿帮。

很多人看到这类视频会问:是不是有新的 AI 模型已经强到可以“凭空生成破屏镜头”了?确实有生成式视频工具能模拟类似的镜头运动,但如果只看完一段 5 秒视频就以为“全自动一键生成”,落地时大概率会失望。我更倾向于把这种“破屏效果”当成一个视频合成任务来拆解:先搞清楚屏幕是一块怎样的平面,再搞清楚角色以什么方式跨越平面,然后才是抠像、建模或调用 AI 模型。

这篇文章不讨论某个具体视频是否由某个工具制作,而是从工程角度拆解这类“从屏幕里跑出来”的效果可以怎么实现。会给出三条路线、一套可执行流程,以及容易被忽略的翻车点。

1. 先别急着说“AI 都能一键生成”,这本质上是合成问题

1.1 “跑出屏幕”不是一个事件,而是一组层关系

在电影和视频合成里,“跑出屏幕”通常不是一个物理事件,而是画面中两个平面之间的视觉冲突。屏幕本身是一块平面,屏幕里的内容是另一个已经被压缩的画面。角色一旦要“破屏”,观众实际上需要看到两种情况同时发生:

  • 屏幕内部仍然有一个角色或角色剩余部分。
  • 屏幕外部有一个和内部角色连续、动作同步、光影一致的角色延伸部分。

如果只有 2D 原画或者一段屏幕内舞蹈素材,那这些信息在原素材里根本不存在。原素材只告诉你“屏幕里发生了什么”,没有告诉你“屏幕外面是什么”。所以破屏效果最难的部分不是让角色跳舞,而是补出屏幕外那部分空间。

举个例子:你拿一段竖屏的初音舞蹈视频,想让她一脚踩出屏幕边框。这段竖屏视频本身没有任何屏幕外背景。如果只是把它当贴片放在桌面背景上,再把角色抠出来复制一遍放在边框外,复制部分会缺少新的透视角度、缺少栏杆或桌面产生的遮挡、缺少跨出屏幕后应有的阴影,整体就会像一张 PPT 动画,而不是真实破屏。

因此,一个可靠的工作流需要把画面看成多层:屏幕内画面、屏幕框架、屏幕外环境、角色外伸部分、影子与环境反射。顺序不对,关系就不对。

1.2 劈叉舞这类素材为什么适合用来演示

“劈叉舞”听起来只是整活,但它作为破屏演示素材有一个先天优势:动作幅度大,肢体位移明显,屏幕边框和角色肢体之间的交叉关系很容易被观众注意到。

如果角色只是站在原地挥手,跨出屏幕的那只手幅度不大,观众不会觉得“穿帮”,但冲击力弱。劈叉动作会带来至少三个技术难度:

  • 腿部或手部在极短时间内改变位置,分割蒙版需要逐帧连续。
  • 裙摆、头发、披风等半透明边缘大量出现,抠像模型容易在发丝和布料边缘产生闪烁。
  • 动作幅度大意味着更多关键帧需要处理,角色肢体从屏幕内过渡到屏幕外时,任何一帧的不连续都会被放大。

换句话说,劈叉舞适合当测试案例,因为它能快速暴露一个合成管线在边缘稳定性上的缺陷。能把大动作角色稳定“穿屏”,再做小动作和日常动作会轻松很多。

1.3 三个核心变量:分割、深度、遮挡

无论走哪条路线,我都会先检查三个变量:

  1. 分割:屏幕内的角色边界是否干净。如果原视频来自动画渲染,屏幕内角色可能本来就是透明通道,分割难度低。如果是实拍或 AI 生成视频,则需要逐帧提取 alpha 通道。
  2. 深度:角色穿过屏幕平面时,到底离镜头更近还是更远。“从屏幕里跑出来”默认是向镜头方向移动,角色应该比屏幕边框和背景更接近镜头,所以要大、要更清晰、必要时要有轻微透视变化。
  3. 遮挡:屏幕边框是否在特定位置遮住了角色?很多时候,穿帮不是因为抠像不好,而是因为不知道屏幕边框应该位于角色前方还是后方。角色在屏幕内时,屏幕玻璃和边框在角色前面;角色跨出屏幕边缘后,最外层应该是角色的一部分压在边框前面,形成“穿越”的视觉。

只要这三个变量不统一,画面看起来就会像角色被贴在屏幕上的贴纸。

2. 三条制作路线:抠像、三维重制、AI 生成,分别能走多远

2.1 路线一:2D 抠像 + 边缘合成,依赖“已有屏外信息”

这是最快速的一条路,适合已经有一段画面包含“屏幕外信息”的素材。比如你用手机拍一个桌面上的平板,平板上播放初音舞蹈视频,然后你想让初音的手伸到屏幕外。如果原素材里平板周围已经拍到了桌面,那么通过抠像和图像生成的思路,可以补出屏幕外的手部延伸。

完整的思路通常是:

  1. 把视频序列导入处理工具。
  2. 用视频抠像模型提取前景角色 alpha。
  3. 把屏幕内部区域单独分成一层。
  4. 在屏幕外部手动创建或生成角色延伸部分。
  5. 合成时保证屏幕边框、外部背景和阴影的层级正确。

这里最容易低估的是“屏外信息”的来源。如果原始画面是完整的竖屏动画,也就是屏幕就是整个画面,没有桌面和手机边框,那 2D 路线需要做“图像外绘”(outpainting),把屏幕外的世界想象出来。这已经不只是抠像,还涉及逐帧内容生成。

如果素材里本来就有屏幕设备,2D 路线可以用固定关键帧 + 手工修补来完成,但只适合短期少量产出。因为只要镜头发生一次轻微运动,屏幕角点位置就会变化,抠像蒙版就必须跟着调整,最终工作量会迅速膨胀。

2.2 路线二:三维重制,把“屏幕”变成真正的空间平面

如果要把这类效果做成系列,或者未来想实时交互,最可控的路线是三维重制。

具体来说,不是拿一张视频图去强行扣,而是先在三维场景里搭一个“屏幕平面”和一个角色模型。屏幕平面可以是一台手机、平板或电脑显示器,只需要一个四边形 mesh 和一个边框素材。角色模型可以来自 MMD/VRM 等常见虚拟角色格式,也可以从舞蹈视频中提取动作数据,再驱动到自己的 3D 模型上。

制作流程更接近三维动画:

  • 建立一个摄像机,正对或斜对屏幕平面。
  • 让角色模型先在屏幕内部完成舞蹈,直到某个动作接近屏幕边缘。
  • 在角色接触屏幕边界的关键帧,让角色继续向屏幕外移动。
  • 渲染时,屏幕内部画面使用一块透明纹理,屏幕外部分用场景真实灯光渲染。
  • 阴影可以单独渲染一层,用来模拟角色跨出屏幕后落在桌面上的投影。

这条路对不熟悉三维的人来说门槛高,但它的好处是“屏幕”和“角色”是真正具有空间关系的物体,画面里不会出现分层错乱。用 Stencil Buffer 或遮罩渲染,可以让屏幕外不能看到的部分自然被屏幕壁挡住,从而形成真实穿越。

如果你只是用三维引擎播放角色动画和屏幕纹理,不需要每次重新建模,只需要替换动作和纹理,换句话说,它可以变成模板。

2.3 路线三:生成式视频,节省时间,但也交出控制权

现在确实有一些通用 AI 视频生成模型,可以用一句提示词生成“角色跳劈叉舞然后从屏幕里钻出来”的镜头。但实际使用时要有一个预期:生成模型的可控性仍然不稳定。

生成式模型擅长的是“让画面整体看起来合理”,不擅长的是“这个角色右手必须精确在第三秒跨过屏幕左边缘”。如果你需要在固定片头或产品动画里精确控制穿屏时间,纯生成式输出通常无法一帧不差地满足要求。

我更推荐把生成式模型当素材生成器,而不是最终合成器。比如先用 AI 生成一段角色出屏的动态背景,再通过传统合成把主体角色叠加进去,或者生成多个版本后逐帧筛选可用的片段。

另一个问题是版权和素材一致性。如果你生成的角色形象非常接近某个商业 IP,在公开平台发布时可能有风险。生成内容最好用于风格参考和测试,正式商用前要做授权判断。

2.4 路线对比:到底选哪个取决于什么

路径上手成本场景限制可控性适合对象
2D 抠像 + 边缘合成要求画面已有屏幕外信息或能补全中等,逐帧手工多单条整活视频、临时测试
三维重制场景可完全自定义,减少环境限制高,动作/相机都可调系列内容、直播互动、产品可视化
生成式视频最低依赖模型能力和提示词控制低,关键帧不稳定创意测试、快速出 Demo

不要一开始就三选一。更合理的做法是先用最容易跑通的路线做一条 5 秒测试,跑完后再决定是否值得换成三维重制。

3. 从素材到成片:一条可以落地的完整流程

3.1 第一步不是建模,而是定边界

拿到素材后,先不要急着抠像或者生成。你应该先在画面里明确“屏幕边界”在哪些位置。

如果最终画面需要出现一部手机,那屏幕边界的四个角点会在每一帧发生变化。此时要先做特征点跟踪,锁定屏幕角点。如果屏幕是纯粹后期画上去的,那么边界就是固定的矩形,处理难度降低一半。

我建议先输出一份“屏幕角点信息文件”,里面记录每一帧的四个角点坐标。这个文件是所有后续合成的基础。没有它,角色穿屏的那只手和屏幕边缘永远无法对齐。

可以用常见的特征点跟踪工具检查屏幕表面有没有反射、手指遮挡和边缘模糊。如果屏幕上还有玻璃盖板反光,屏幕内容会被压暗或扭曲,通常需要单独拆一层玻璃反光,而不是把整个屏幕当成纯色矩形。

3.2 前置处理:抽帧、分割、修补背景

当屏幕边界确定后,下一步是生成角色透明通道。对原视频抽帧是常见做法:

ffmpeg -i source.mp4 -qscale:v 1 -start_number 0 frames/%08d.png

抽帧后,可以使用开源视频抠像模型或手工 roto 方式得到角色 alpha。常见的语义分割或视频抠像模型会输出一张 alpha 图,示意代码如下:

mask = model.predict(frame) # 这里是一个示意结构 alpha = (mask > 0.5).astype("uint8") * 255

如果你的素材是动画渲染,可能一开始就有角色 ID 通道或者 alpha 通道,不需要额外抠像。但如果是 AI 生成视频或实拍,抠像后一定要处理边缘。直接使用硬蒙版会造成明显的白边,需要对 alpha 做边缘侵蚀和羽化,并且必要时要利用颜色去边。

背景修补也很关键。当你把角色从屏幕内抠出以后,屏幕内的背景会空出一块。如果整块屏幕里原本就只有角色在动,背景是纯色,修补很简单。如果背景是动态 PV 场景、有复杂的灯光和移动元素,就必须从相邻帧采样或用生成式填充修补。这个过程很费时间,所以在选素材时尽量选择屏幕背景不复杂的片段。

3.3 合成主流程:让角色“穿过”屏幕边界

当角色 alpha 和屏幕边界都准备好后,合成可以分三步做:

  1. 把屏幕内部完整画面放在底层。
  2. 在屏幕外环境中叠加一个经过同样相机视角处理的角色延伸层。
  3. 用屏幕边界蒙版控制哪些像素属于屏幕内部、哪些属于屏幕外部。

具体来说,你需要在穿屏瞬间前把角色的“屏幕内部实例”和“屏幕外部实例”分开。屏幕内部实例的原始素材完整播放,屏幕外部实例则要经过缩放、位移和裁剪,让同一个角色的手或脚在穿出时保持连续。

如果直接用三维路线,这一步会更简单:先渲染一张屏幕内部画面,再渲染一张角色模型从屏幕平面中穿出的画面,最后在合成软件里用屏幕平面本身做遮罩。屏幕平面以内只显示屏幕内部画面,屏幕平面以外只显示三维渲染出来的角色延伸。

这里有个关键提醒:不要试图在同一个二维视频图层里同时完成“内部显示”和“外部穿出”。因为当你把角色复制到屏幕外时,原来位于屏幕内部的那部分原视频仍然存在,两实例重叠后会产生双层图像。必须明确每个实例的可视范围:一个限制在屏幕内部,一个排除屏幕内部。

3.4 最小验证与迭代节奏

完整流程跑完之前,不要直接处理整个 30 秒视频。我建议按这样的节奏来:

  1. 先用一个“穿屏瞬间”关键帧做静态合成。
  2. 验证角色肢体和屏幕边界在静止状态下是否连续。
  3. 再截取穿屏前后各 15 帧做动态测试。
  4. 确认边缘稳定后,再扩展到整段视频。

如果静态帧看起来就不对,动态处理之后只会更糟。静态帧把形状、Alpha、边界对齐都解决了,动态阶段只需要处理时间连续性和运动模糊。

3.5 一个小型工程化建议

如果你打算做多期同类型内容,建议把整个流程抽象成这样:

  • 输入:角色动作视频、屏幕背景素材、穿屏动作起止时间。
  • 中间资产:帧序列、alpha 序列、屏幕角点跟踪文件、屏幕内背景补全结果。
  • 输出:带透明通道或已合成的成片。

这样换一个角色、换一段舞蹈,不需要重新调整所有参数,只需要替换输入和动作起止点。注意原始素材没有提供明确版本或依赖时,落地前要确认所用软件和模型版本,不要让流程里混入一个不确定版本的依赖。

4. 最容易翻车的位置:白边、边框、阴影和突变的穿帮

4.1 边缘处理:白边来自哪里

很多破屏视频看起来“假”,不是角色没有伸出屏幕,而是角色边缘一圈发白。白边通常来自三个原因:

  • 原视频背景颜色被错误地保留到前景边缘。
  • Alpha 蒙版边缘过于锐利,角色和背景之间缺少过渡。
  • 软件内部把透明通道展开时没有做预乘,颜色边缘出现了亮瞎眼的 RGB 溢出。

处理白边时,可以对 alpha 边缘做几个像素的侵蚀,再对颜色通道做去边操作。如果角色是黑发或深色服装,白边特别明显,最好在单帧上反复看放大后的结果。

另一个高频问题是边缘闪烁。视频抠像模型在连续帧上输出的 alpha 会有轻微抖动,人眼会捕捉成轮廓“蠕动”。这种闪烁很难通过调参完全消除,我通常会在时间轴上对 alpha 做轻微的时域平滑,也就是让相邻帧的蒙版变化不会突变。注意不能平滑过度,否则动作大的场景会出现拖影。

4.2 层序与遮挡:屏幕边框怎么处理

角色在屏幕内时,屏幕玻璃或屏幕边框应该盖住角色的一部分。角色一旦跨出屏幕,跨出部分又应该压住屏幕边框。这一层遮挡关系如果搞反,画面会非常违和。

我见过很多失败案例是:把角色整个图层放在屏幕框上方。这样确实能表现“角色最靠近镜头”,但角色在屏幕内的部分也同时压住了屏幕玻璃,相当于角色还没跨出屏幕,就已经站在玻璃前面了。

正确做法需要按“深度面”拆层:

  • 屏幕内部画面处于屏幕平面后方。
  • 屏幕玻璃反射和边框处于屏幕平面前方。
  • 角色延伸到屏幕外后,角色外伸部分处于屏幕边框前方。
  • 如果角色是从屏幕内被推出来的,在穿越临界点前后,玻璃反射层和角色层需要做交叉切换。

这种交叉切换在剪辑软件里可以通过关键帧遮罩实现,在三维引擎里则靠模型能不能穿过一个薄盒体来处理。只要记住一点:不是所有角色像素都永远在最前面。

4.3 动态细节:阴影、运动模糊和关键帧节奏

角色跨出屏幕后,如果外部是真实桌面,角色身上和桌面上必须有阴影。很多教程会告诉你“加一个 shadow”就好,但实际上阴影的形状要跟着角色动作变化。一个在做劈叉动作的角色,腿部落到屏幕上时,桌面上的阴影边缘应该和腿部的形状对应。

如果完全没有阴影会显得“悬空”。如果加了阴影但阴影不跟着动作动,观众也会觉得角色是一张纸片。

运动模糊同样重要。快速出屏动作如果在某些帧速度很快,却没有运动模糊,视觉上会产生“卡帧”感。传统实拍视频在快速移动镜头下天然有运动模糊,普通 2D 合成素材没有这一层,需要在合成时按动作速度局部加模糊。不必全片加,只需要在手脚最接近屏幕边界的位置加,否则整帧都会变软。

关键帧节奏上,不要只做匀速位移。真正破屏更像是一个加速过程:屏幕内角色靠近边界时略微减速,让观众看清接触点;跨出边界后加速向前,镜头产生稍许前景放大;随后再恢复稳定。如果能按这个节奏编排,画面的“触感”会强很多。

4.4 一个可复用的排查链路

遇到破屏效果一眼假,先不要怀疑某个 AI 模型能力不行,按顺序排查自己的合成链路:

  1. 冻结在穿屏交叉帧。看角色边缘与屏幕边框交汇处是否干净。
  2. 逐个图层打开和关闭。判断到底是背景问题、角色分割问题,还是边框遮挡问题。
  3. 检查 alpha 时间连续性。快速前后拖动几帧,看边缘是否闪烁、是否有部分像素突然消失。
  4. 检查屏幕外区域的光影。角色跨出后周围环境有没有对应的接触阴影和反射。
  5. 全屏尺寸检查。缩小到手机端可能看不出问题,放到全屏再看一次。破屏视频大多数在电脑全屏播放时更容易暴露边缘压痕和画质不连续。
  6. 检查输出编码设置。如果导出参数过低,边缘部分会因为压缩出现破损,动态越复杂越明显。先导出高质量中间文件,最后再二次压缩。

多数“一眼假”不是模型不够强,而是某一帧的边缘关系本身就错了。

5. 这套流程真正值得沉淀的:从单支视频到可复用框架

5.1 适合与不适合的场景划分

不是所有素材都适合做破屏。越早意识到这件事,越不会浪费时间。

适合做破屏的角色镜头通常有几个特点:

  • 角色主体清晰,和背景分离度高。
  • 动作过程中手或脚能够接触到屏幕边缘。
  • 镜头稳定或运动轨迹简单。
  • 屏幕外空间有比较明确的桌面、墙面或地面,能产生连续深度感。
  • 屏幕玻璃不反光,或者反光单独分层可控。

不适合的场景包括:

  • 角色一直位于画面正中心,且没有靠近过边缘。这种情况需要额外生成大量屏幕外内容,工作量和穿帮率都会上升。
  • 背景里有大量透明物、复杂玻璃、复杂半透明布料。逐帧分割会把这些区域误判成背景。
  • 角色和多个物体同时交错,比如角色手里拿着道具,道具又和屏幕边界发生碰撞。除非用完整三维重制,否则 2D 路线很难处理。

5.2 从单条内容走向模板化、批量化、产品化

如果“劈叉舞的初音从屏幕跑出来”只是一次性整活,用 2D 抠像或 AI 生成都行。但如果公司或个人想持续生产这类“虚拟角色出屏”内容,我建议把精力放在三维模板上。

核心不是做一个能跳舞的角色,而是做一个可控制的“屏幕盒子”场景:

  • 屏幕盒子可以随时换尺寸,从手机换成电脑显示器。
  • 角色模型可以随时换动作素材。
  • 摄像机路径可以从固定的几种模板里选择。
  • 灯光和阴影单独设为一层。
  • 渲染输出可以统一分辨率、透明通道和分版。

这种模板在第一版会花较多时间,但第二版开始,换一个角色或换一段舞蹈的成本会明显下降。所有复杂的东西都被收敛到资产替换上。

如果你打算走纯 AI 辅助路线,也一样要考虑批次管理。你不可能每次都靠手写提示词去碰运气。可以先设计好完整分镜:哪些镜头用 AI 生成,哪些镜头用传统合成,哪些镜头用 3D 渲染。不同工具的边界清晰后,整体流程才可重复。

5.3 合规与素材使用边界

做类似内容时,不要忽略素材版权。虚拟形象形象、舞蹈动作、音乐、原视频片段都可能涉及授权。个人学习测试可以宽松处理,但公开传播和商用前需要确认授权范围。

如果用 AI 生成或训练模型,还要按照平台规定明确标识生成内容。这不是为了增加流程负担,而是为了在技术快速变化的环境里保留基本透明度。不同平台对“AI 生成内容”的标识要求不同,发布前先看平台规则。

5.4 一个很实用的判断标准

当你想复刻“破屏效果”时,可以用下面这个判断框架快速决策:

  • 只想快速出一个 Demo:走 AI 生成或现成视频分割,放低预期。
  • 想做 5 条以内的系列内容:用 2D 合成 + 手工边缘修补。
  • 想做超过 10 条,并且角色不同、动作不同:花时间搭三维场景模板。
  • 想接入实时场景,比如直播或线下互动屏幕:直接用三维引擎实时渲染。

这套判断框架不针对哪一个具体软件,但它会提醒你:技术选型的关键不在于“工具链看起来有多新奇”,而在于“你打算把这支视频做多少次”。

“从屏幕里跑出来”这个梗很容易让人陷在单次效果里。但它真正有价值的地方,是把“屏幕内画面”“屏幕外世界”和“角色穿越动作”抽象成三层可计算的视觉关系。只要这三层关系成立,不管角色是不是初音,不管动作是不是劈叉舞,你都能做出可信的破屏镜头。

下次看到这类视频,你可以不再只关心它有多炫,而是试着判断它走的是哪条路线。看角色边缘是否干净、看屏幕边框和角色的交叉点是否稳定、看角色跨出后有没有可感知的阴影。把一次视觉惊奇拆成几个可验证的图层,比单纯保存一条特效链接更能提升对视频合成的理解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 13:50:35

3步给Rust桌面应用加3D:Iced矩阵变换与3D渲染速成

3步给Rust桌面应用加3D:Iced矩阵变换与3D渲染速成 【免费下载链接】iced A cross-platform GUI library for Rust, inspired by Elm 项目地址: https://gitcode.com/GitHub_Trending/ic/iced 界面还是一片平?Iced 是一个受 Elm 启发的跨平台 Rust…

作者头像 李华
网站建设 2026/9/3 13:50:34

小鹏G9L七重试炼背后:智能电动车三电安全与整车极限验证逻辑

小鹏G9L的“水陆空七重试炼”,如果只看成一次营销表演,那确实容易错过重点。这套测试真正想讲的,并不是一台车能不能冲过水池、碾过烂路、扛住冲击那么简单,而是把三电系统、底盘结构、传感器感知、车身密封和整车控制器放在一起验…

作者头像 李华
网站建设 2026/9/3 13:46:31

Access数据库开发实测:ChatGPT、Gemini、Claude谁更靠谱?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 13:45:40

AI方言解说技术实践:从语音识别到音视频合成的全栈解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 13:45:31

Chart.js 饼图与环形图实战:doughnut 定制、偏移与空状态处理

Chart.js 饼图与环形图实战&#xff1a;doughnut 定制、偏移与空状态处理 【免费下载链接】Chart.js Simple HTML5 Charts using the tag项目地址: https://gitcode.com/gh_mirrors/ch/Chart.js Chart.js 是一款基于 HTML5 <canvas> 标签的轻量级图表库&#xff0c;…

作者头像 李华