我们正在建设《冒险学院》,一个教孩子们英语的RPG。我们遇到的一个问题是如何让生物进化的感觉有意义,而不是仅仅是一种调色板的替换。以下是我们处理的流程。
所有生物素材都是由AI生成的,然后我们在Python中使用Pillow逐帧组合素材,并将原始RGB直接输入到ffmpeg中进行编码。我们没有使用任何AI视频模型。每一帧都是由叠加的姿势混合、粒子效果、照明和字幕层构成的,然后第二次ffmpeg的传递将生物的叫声和背景音乐混合在一起。
我们花了最多的迭代是实际转型的那一刻。早期版本的转换是通过简单的alpha混合在预进化和后进化素材之间进行交叉淡出,背景是亮色的(我们案例中的火山景),你会看到两个素材的透明填充不对齐的可见的矩形“幽灵盒子”。原来线性alpha混合是问题。我们通过gamma-增强混合的alpha通道单独进行处理,独立于颜色混合,fade就会在完全不透明或完全透明时“咬合”,而不是在可见的灰色盒子中“徘徊”。
每个元素也都有自己的粒子语言,而不是一个通用的闪烁效果:火的embers、冰的漂浮冰晶、水的上升气泡、黑暗的烟雾、虫子的碎片、草的叶子。颜色是直接从游戏的真实类型颜色标记中拉取的,而不是靠近眼睛。还有一个方向光照传递(我们内部称之为“月光”)就是一个离画布外的模糊光源,通过屏幕混合传递给素材,没有可见的太阳或月亮形状,只有照明。
值得分享的bug之一是:我们使用每帧的实际alpha边界盒来将生物的脚踩在地面上,而不是使用固定的偏移,因为不同的动画姿势有不一致的透明填充,生物会因为活动的姿势而明显浮在几像素。
附上完成的进化片段(Thornel到Thornfang)。如果有人对组合代码或粒子系统感兴趣,我们可以深入探讨。
评论 (0)