最佳实践:基于AI Function的游戏广告视频生成

更新时间:
复制 MD 格式

本文以三国塔防游戏《箭塔守汉中》为例,演示如何基于 Hologres AI Function,从游戏原始素材出发,通过 SQL 自动生成主题角色图、广告分镜脚本,并最终生成10秒广告视频。

背景介绍

在游戏行业中,广告素材生产是拉新投放和版本宣发中的核心环节。尤其在买量场景下,团队通常需要在短时间内批量生成不同风格、不同主题、不同卖点的视频/图片广告素材,用于测试点击率、转化率和用户偏好。

传统广告制作方式主要依赖人工完成素材整理、创意策划、海报设计、分镜编写和视频剪辑,存在以下痛点:

  • 原始素材分散:角色图、场景图、道具图、游戏介绍、卖点文案通常分散在多个系统中,难以统一管理。

  • 创意生产效率低:每做一条广告,都需要从头构思主题、筛选素材、撰写脚本并进行视频制作,周期较长。

  • 多版本测试成本高:买量广告需要进行大量 A/B Test,人工方式难以支撑高频迭代。

  • 投放与素材脱节:广告素材、脚本版本和投放效果数据之间缺少统一沉淀,难以形成优化闭环。

基于 Hologres AI Function,可以将游戏原始素材管理、素材生成、广告营销内容生成、广告投放效果分析串联起来,形成一套完整的 AI 广告视频生产流程。

方案优势

本方案的核心价值在于:以 Hologres 为 AI 素材生产中台,整合多模型能力,实现广告智能素材的自动化生成。

  • 全 SQL 链路:无需复杂编程,数据工程师仅通过 SQL 即可在 Hologres 中完成 AI 模型调用、素材整合和智能营销内容生成,门槛极低。

  • 统一管理游戏素材:通过 Hologres 表结构统一管理游戏的多种素材,涵盖图片、视频、音频等多模态数据,可以有效与广告投放数据混合分析。

  • 端到端自动化:覆盖从角色变体、分镜脚本到视频合成的全流程,实现分钟级产出。

  • 高效扩展性:支持多场景的广告营销内容批量生成,大幅提升内容生产效率和投放效率。

方案完整流程

通过 AI Function 生成游戏广告视频的完整流程如下:

  1. 在 Hologres 中存储游戏信息的原始物料。

  2. 利用 qwen-image-2.0-pro 模型从元素物料生成各个主题的图片库。

  3. 按照提示词,召回主题图片,利用 qwen3.7-plus 生成分镜脚本。

  4. 主题图片 + 分镜脚本 + wan2.7-t2v 模型生成游戏广告视频。

  5. 选择合适的广告视频进行投放。

image

前提条件

  • 已创建 Hologres 实例,且实例版本为 4.0.40 及以上、4.1.26 及以上、4.2.5 及以上或 5.0 及以上。当前支持地域:北京、上海、杭州、深圳、新加坡。

  • 已购买 Hologres AI 模型资源。请前往 AI 模型资源购买页进行购买,托管模型采用按量付费模式,购买时请选择与 Hologres 实例相同的 Region。具体操作,请参见托管模型。

  • 已在 Hologres 管理控制台部署所需的托管模型,包括图片生成模型(如 qwen-image-2.0-pro)、文本生成模型(如 qwen3.7-plus)和视频生成模型(如 wan2.7-t2v)。部署步骤:登录 Hologres 管理控制台,进入目标实例详情页 → 在左侧导航栏选择AI模型 → 单击部署模型 → 模型提供方选择Hologres 托管模型 → 选择模型类别(支持多选)→ 为每个模型设置参数并配置重试机制 → 单击确认完成部署。详细操作,请参见托管模型。

  • 已准备 OSS Bucket(如尚未开通,请参见开通OSS服务)用于存储生成的图片和视频素材,并配置了相应的 RAM 角色授权(详见准备工作)。OSS Bucket 必须与 Hologres 实例在同一地域,否则 to_file() 函数无法通过内网 Endpoint 访问 OSS。关于 ai_gen 和 to_file() 函数的详细说明,请参见AI Function生成图片或视频。

    本文示例中的 OSS 内网 Endpoint 为 oss-cn-hangzhou-internal.aliyuncs.com(杭州地域),如果您的实例在其他地域,请替换为对应地域的内网 Endpoint,格式为 oss-cn-<region>-internal.aliyuncs.com。例如上海地域为 oss-cn-shanghai-internal.aliyuncs.com。

  • 本次最佳实践部署的模型:

    • 图片生成模型:qwen-image-2.0-pro

    • 文本生成模型用于生成分镜头脚本:qwen3.7-plus

    • 视频生成模型:wan2.7-t2v

本文示例中使用的模型名称(如 qwen-image-2.0-pro、qwen3.7-plus、wan2.7-t2v)均为在 Hologres 控制台中配置的部署名称,请根据您实际部署的模型名称进行替换。您可以通过以下 SQL 查询当前实例中已部署的模型列表:

SELECT * FROM pg_catalog.hg_ai_models;

其中,RAM 角色需要满足以下两个条件(关于 RAM 角色授权的详细说明,请参见RAM角色授权模式):

  1. 信任策略:允许 Hologres 服务扮演该角色。在 RAM 控制台中编辑角色的信任策略,确保包含以下内容:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "hologres.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
  2. 权限策略:为该角色附加 OSS 访问权限。您可以直接附加系统策略 AliyunOSSFullAccess,或创建自定义策略仅授权指定 Bucket 的读写权限:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetObject",
            "oss:PutObject",
            "oss:GetBucketInfo"
          ],
          "Resource": [
            "acs:oss:*:*:<BucketName>",
            "acs:oss:*:*:<BucketName>/*"
          ]
        }
      ]
    }

步骤一:准备游戏信息物料表

在 Hologres 中创建一张游戏信息的物料表,用于存储游戏的基本信息和原始素材路径。

-- 创建游戏信息表
DROP TABLE IF EXISTS game_info;
CREATE TABLE game_info(
    name TEXT,
    intro TEXT,
    motivation TEXT,
    art_style TEXT,
    material_list TEXT[]
);

-- 插入游戏信息
INSERT INTO game_info (name, intro, motivation, art_style, material_list)
VALUES (
    '箭塔守汉中',
    '《箭塔守汉中》是一款轻松休闲的三国塔防游戏。风云激荡的三国时代,你将化身为一军之帅,肩负守土之责!
    玩法介绍:
    1. 通过拖拽将各种防御塔放置在预设的路径旁。
    2. 点击升级已有的防御塔,提升其威力。
    3. 在关键时刻,点击释放武将技能,瞬间扭转战局。',
    '策略塔防',
    '扁平、中国风、简约小人',
    ARRAY[
        'oss://<BucketName>/images/liubei.png',
        'oss://<BucketName>/images/lvbu.png'
    ]
);

其中 material_list 存储了游戏角色的原始素材图片在 OSS 中的路径。

素材示例:游戏里真实的角色、背景等图片。

oss://<BucketName>/images/liubei.png

oss://<BucketName>/images/lvbu.png

image.png

image.png

刘备

吕布

步骤二:创建主题图片生成提示词表

从游戏原始角色图片分化出各种主题风格,用于广告素材的生成。

-- 创建主题风格提示词表
DROP TABLE IF EXISTS video_style;
CREATE TABLE video_style(
    name TEXT PRIMARY KEY,
    prompt TEXT
);

-- 插入不同主题的提示词
INSERT INTO video_style VALUES
('北境枭雄', '保持人物肖像不变,生成穿着身披厚重的黑色毛领金属铠甲,铠甲上凝结着冰霜与战火的痕迹。冷峻的蓝调光线,史诗级电影感,细节惊人的Q版人物。'),
('云海剑仙', '保持人物肖像不变,生成气质儒雅的三国谋士,化身仙风道骨的剑仙。他身着月白色宽袖道袍,袍上有水墨山水的暗纹的Q版人物。'),
('幽冥夜行', '保持人物肖像不变,生成化身为神秘的暗影刺客。他身着哑光黑色的贴身夜行衣,戴着遮住半脸的面具的Q版人物。'),
('黄金铠甲', '保持人物肖像不变,生成身穿一套极其华丽、装饰着龙纹与珠宝的黄金铠甲,披着猩红色的丝绸斗篷的Q版人物。');

步骤三:生成主题图片库

为每个角色生成不同主题下的图片。本例中为 2 个角色分别生成 4 个主题的图片,调用 ai_gen() 函数使用 qwen-image-2.0-pro 模型。

-- 创建生成图片的结果表
DROP TABLE IF EXISTS generated_images;
CREATE TABLE generated_images(
    game_name TEXT,
    style_name TEXT,
    style_desc TEXT,
    character1 TEXT,
    character2 TEXT
);

-- 批量生成主题图片并存储结果
WITH person_prompt AS (
    SELECT game_info.name AS game_name,
           video_style.name AS style_name,
           material_list[1] AS character1,
           material_list[2] AS character2,
           prompt
    FROM game_info, video_style
    WHERE game_info.name = '箭塔守汉中'
),
gen_image AS (
    SELECT game_name, style_name, prompt AS style_desc,
        ai_gen('qwen-image-2.0-pro', json_build_object(
            'prompt', prompt,
            'reference_urls', array[character1],
            'parameters', json_build_object(
                'size', '1280*720',
                'n', 1,
                'watermark', false
            ),
            'output_dir', 'oss://<BucketName>/images/'
        )::text, to_file(character1, 'oss-cn-hangzhou-internal.aliyuncs.com',
            'acs:ram::<AccountId>:role/<RoleName>')) AS obj1,
        ai_gen('qwen-image-2.0-pro', json_build_object(
            'prompt', prompt,
            'reference_urls', array[character2],
            'parameters', json_build_object(
                'size', '1280*720',
                'n', 1,
                'watermark', false
            ),
            'output_dir', 'oss://<BucketName>/images/'
        )::text, to_file(character2, 'oss-cn-hangzhou-internal.aliyuncs.com',
            'acs:ram::<AccountId>:role/<RoleName>')) AS obj2
    FROM person_prompt
),
image_urls AS (
    SELECT game_name, style_name, style_desc,
           obj1::json->'image_oss_paths' ->> 0 AS character1,
           obj2::json->'image_oss_paths' ->> 0 AS character2
    FROM gen_image
)
INSERT INTO generated_images SELECT * FROM image_urls;

执行完成后,generated_images 表中将存储每个角色在各个主题下的生成图片 OSS 路径。

game_name

style_name

style_desc

character1

character2

箭塔守汉中

黄金铠甲

保持人物肖像不变,生成身穿一套极其华丽、装饰着龙纹与珠宝的黄金铠甲,披着猩红色的丝绸斗篷的Q版人物。

oss://<BucketName>/images/142ac543-d241-4127-ad47-75a02d7b8b32.png

oss://<BucketName>/images/838d2735-e9fa-4a52-9124-880941203103.png

箭塔守汉中

云海剑仙

保持人物肖像不变,生成气质儒雅的三国谋士,化身仙风道骨的剑仙。他身着月白色宽袖道袍,袍上有水墨山水的暗纹的Q版人物。

oss://<BucketName>/images/596bb585-1722-4752-aaa7-a48d53184e2b.png

oss://<BucketName>/images/1703a30c-be46-4128-88d0-ee3eea0c72a3.png

箭塔守汉中

幽冥夜行

保持人物肖像不变,生成化身为神秘的暗影刺客。他身着哑光黑色的贴身夜行衣,戴着遮住半脸的面具的Q版人物。

oss://<BucketName>/images/914873db-8dd5-47b5-98ed-d5ba1e0cdba0.png

oss://<BucketName>/images/d09e4316-8f69-4926-b58f-59054b381c6d.png

箭塔守汉中

北境枭雄

保持人物肖像不变,生成穿着身披厚重的黑色毛领金属铠甲,铠甲上凝结着冰霜与战火的痕迹。冷峻的蓝调光线,史诗级电影感,细节惊人的Q版人物。

oss://<BucketName>/images/29a02d94-7da9-43e7-a272-0e7d0bf1b55a.png

oss://<BucketName>/images/0c41e5a2-2930-4895-a5ee-3bca1e060b2f.png

刘备

吕布

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

步骤四:生成分镜脚本

将主题图片作为视频物料,调用大语言模型生成广告分镜脚本。

-- 创建提示词模板表
DROP TABLE IF EXISTS prompts;
CREATE TABLE prompts (
    id BIGINT,
    prompt TEXT
);

-- 插入分镜脚本生成的提示词模板
INSERT INTO prompts VALUES (10,
'你的任务是为手游行业生成一份用于投放广告的10秒视频素材文案。

<游戏名称>{0}</游戏名称>
<游戏介绍>{1}</游戏介绍>
<玩家动机>{2}</玩家动机>
<游戏画面风格>{3}</游戏画面风格>
<图片物料>{4} {5}</图片物料>

视频素材结构:
1. 开场2秒:选取一张图片,显示游戏名称,展示夸张特效。
2. 中段6秒:展示1个核心玩法,选取2张图片,描述角色动作和效果。
3. 结尾2秒:所有角色登场,使用行动号召。

要求:围绕玩家动机展开,脚本不超过10秒,使用图片全路径。');

使用模板生成分镜脚本,调用 qwen3.7-plus 模型:

-- 生成分镜脚本
WITH game_material AS (
    SELECT * FROM game_info
    LEFT JOIN generated_images ON name = game_name
    WHERE game_name = '箭塔守汉中' AND style_name = '云海剑仙'
),
tmp_prompt AS (
    SELECT json_build_object(
        'prompt', prompt,
        'args', json_build_array(
            name, intro, motivation, art_style,
            to_file(character1, 'oss-cn-hangzhou-internal.aliyuncs.com',
                'acs:ram::<AccountId>:role/<RoleName>'),
            to_file(character2, 'oss-cn-hangzhou-internal.aliyuncs.com',
                'acs:ram::<AccountId>:role/<RoleName>')
        )
    ) AS prompt, character1, character2
    FROM game_material, prompts WHERE id = 10
),
story_script AS (
    SELECT ai_gen('qwen3.7-plus', prompt::text,
        to_file(character1,
            'oss-cn-hangzhou-internal.aliyuncs.com',
            'acs:ram::<AccountId>:role/<RoleName>')) AS script,
        character1, character2
    FROM tmp_prompt
)
SELECT script FROM story_script;

分镜脚本示例:

**视频脚本:《箭塔守汉中》10秒投放素材**

**时长:** 10秒
**核心卖点:** 国风策略、轻松休闲、排兵布阵

| 时间 | 画面描述 (Visual) | 文案/旁白 (Audio/Copy) | 备注 |
| :--- | :--- | :--- | :--- |
| **00:00 - 00:02**<br>(开场) | **素材:** `oss://<BucketName>/images/b1b4c3a7-ee08-4c2c-9db0-ec33f5d93432.png`<br><br>画面展示该角色全身像,周身蓝色特效炸裂扩散。屏幕中央浮现大字标题:**《箭塔守汉中》**。 | **(音效:重低音轰鸣 + 剑鸣声)**<br>旁白:三国乱世,谁主沉浮? | 利用高颜值素材吸引点击,强调游戏名称。 |
| **00:02 - 00:08**<br>(中段) | **素材:** `oss://<BucketName>/images/a1b3dabc-05b5-4f5c-9907-27fd1818cd45.png`<br><br>Q版小人挥舞长剑,剑气横扫屏幕。背景中隐约可见防御塔拔地而起,阻挡敌军。<br>字幕:**排兵布阵 轻松塔防** | **(音效:轻快的打击乐 + 射箭声)**<br>旁白:指尖排兵布阵,建造箭塔抵御千军万马! | 结合两张图的特色(真人脸+Q版身),展示“策略”与“休闲”的结合。 |
| **00:08 - 00:10**<br>(结尾) | **素材:** 画面定格在Q版角色挥剑姿态,下方弹出按钮:**[立即挑战]**。<br>背景出现多个不同的小人剪影(暗示英雄系统)。 | **(音效:胜利号角)**<br>旁白:快来《箭塔守汉中》,守卫你的汉中! | 强行动号召 (CTA)。 |
**视频脚本:《箭塔守汉中》10秒投放素材**

**总时长:** 10秒
**核心动机:** 策略塔防 / 轻松休闲

---

**【0-2s】开场:吸睛特效与品牌露出**
*   **画面内容:** 使用图片 `oss://<BucketName>/images/596bb585-1722-4752-aaa7-a48d53184e2b.png`。
*   **视觉动作:** 画面中央出现巨大的游戏Logo“箭塔守汉中”。背景中的小人身后瞬间爆发强烈的蓝色冲击波特效,剑身光芒暴涨,营造“神将降临”的夸张气势。
*   **音效/旁白:** “三国乱世,谁主沉浮!”(重音强调)

**【2-8s】中段:核心玩法展示(策略排兵)**
*   **画面内容:** 切换至图片 `oss://<BucketName>/images/1703a30c-be46-4128-88d0-ee3eea0c72a3.png`。
*   **视觉动作:** 
    *   **2-5s:** 镜头拉近,聚焦角色手中的发光长剑,剑尖指向屏幕右侧(模拟敌军来袭方向),角色衣袂翻飞,做出防御姿态。
    *   **5-8s:** 角色周身浮现水墨风格的防御阵法光效,配合“叮”的清脆音效,展示“一键布阵”的爽快打击感。
*   **文案/字幕:** “轻松布阵,箭塔御敌!”

**【8-10s】结尾:行动号召**
*   **画面内容:** 画面定格在角色挥剑的最终Pose,背景叠加“立即下载”按钮样式。
*   **视觉动作:** 角色眼神坚定看向镜头,屏幕下方弹出下载指引箭头。
*   **文案/旁白:** “快来《箭塔守汉中》,守卫你的城池!”

步骤五:生成视频

生成分镜脚本后,将脚本和主题图片传入视频生成模型,生成广告视频。使用 wan2.7-t2v 模型。

-- 生成广告视频(一次完成脚本生成 + 视频生成)
WITH game_material AS (
    SELECT * FROM game_info
    LEFT JOIN generated_images ON name = game_name
    WHERE game_name = '箭塔守汉中' AND style_name = '云海剑仙'
),
tmp_prompt AS (
    SELECT json_build_object(
        'prompt', prompt,
        'args', json_build_array(
            name, intro, motivation, art_style,
            to_file(character1, 'oss-cn-hangzhou-internal.aliyuncs.com',
                'acs:ram::<AccountId>:role/<RoleName>'),
            to_file(character2, 'oss-cn-hangzhou-internal.aliyuncs.com',
                'acs:ram::<AccountId>:role/<RoleName>')
        )
    ) AS prompt, character1, character2
    FROM game_material, prompts WHERE id = 10
),
story_script AS (
    SELECT ai_gen('qwen3.7-plus', prompt::text,
        to_file(character1,
            'oss-cn-hangzhou-internal.aliyuncs.com',
            'acs:ram::<AccountId>:role/<RoleName>')) AS script,
        character1, character2
    FROM tmp_prompt
)
SELECT character1, character2,
    ai_gen('wan2.7-t2v', json_build_object(
        'prompt', script,
        'reference_urls', array[character1, character2],
        'parameters', json_build_object(
            'size', '1280*720',
            'duration', 10,
            'shot_type', 'multi',
            'audio', true,
            'watermark', true
        ),
        'output_dir', 'oss://<BucketName>/videos/'
    )::text,
    to_file(character1,
        'oss-cn-hangzhou-internal.aliyuncs.com',
        'acs:ram::<AccountId>:role/<RoleName>')) AS video_result,
    script
FROM story_script;

执行完成后,返回结果中的 video_url 字段即为生成的广告视频地址,同时视频也会保存至指定的 OSS 目录中。

步骤六:生成视频效果预览

生成的视频:

  1. 北境枭雄

  2. 云海剑仙