本文以三国塔防游戏《箭塔守汉中》为例,演示如何基于 Hologres AI Function,从游戏原始素材出发,通过 SQL 自动生成主题角色图、广告分镜脚本,并最终生成10秒广告视频。
背景介绍
在游戏行业中,广告素材生产是拉新投放和版本宣发中的核心环节。尤其在买量场景下,团队通常需要在短时间内批量生成不同风格、不同主题、不同卖点的视频/图片广告素材,用于测试点击率、转化率和用户偏好。
传统广告制作方式主要依赖人工完成素材整理、创意策划、海报设计、分镜编写和视频剪辑,存在以下痛点:
原始素材分散:角色图、场景图、道具图、游戏介绍、卖点文案通常分散在多个系统中,难以统一管理。
创意生产效率低:每做一条广告,都需要从头构思主题、筛选素材、撰写脚本并进行视频制作,周期较长。
多版本测试成本高:买量广告需要进行大量 A/B Test,人工方式难以支撑高频迭代。
投放与素材脱节:广告素材、脚本版本和投放效果数据之间缺少统一沉淀,难以形成优化闭环。
基于 Hologres AI Function,可以将游戏原始素材管理、素材生成、广告营销内容生成、广告投放效果分析串联起来,形成一套完整的 AI 广告视频生产流程。
方案优势
本方案的核心价值在于:以 Hologres 为 AI 素材生产中台,整合多模型能力,实现广告智能素材的自动化生成。
全 SQL 链路:无需复杂编程,数据工程师仅通过 SQL 即可在 Hologres 中完成 AI 模型调用、素材整合和智能营销内容生成,门槛极低。
统一管理游戏素材:通过 Hologres 表结构统一管理游戏的多种素材,涵盖图片、视频、音频等多模态数据,可以有效与广告投放数据混合分析。
端到端自动化:覆盖从角色变体、分镜脚本到视频合成的全流程,实现分钟级产出。
高效扩展性:支持多场景的广告营销内容批量生成,大幅提升内容生产效率和投放效率。
方案完整流程
通过 AI Function 生成游戏广告视频的完整流程如下:
在 Hologres 中存储游戏信息的原始物料。
利用 qwen-image-2.0-pro 模型从元素物料生成各个主题的图片库。
按照提示词,召回主题图片,利用 qwen3.7-plus 生成分镜脚本。
主题图片 + 分镜脚本 + wan2.7-t2v 模型生成游戏广告视频。
选择合适的广告视频进行投放。
前提条件
已创建 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角色授权模式):
信任策略:允许 Hologres 服务扮演该角色。在 RAM 控制台中编辑角色的信任策略,确保包含以下内容:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "hologres.aliyuncs.com" ] } } ], "Version": "1" }权限策略:为该角色附加 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 |
|
|
刘备 | 吕布 |
步骤二:创建主题图片生成提示词表
从游戏原始角色图片分化出各种主题风格,用于广告素材的生成。
-- 创建主题风格提示词表
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 |
刘备 | 吕布 |
|
|
|
|
|
|
|
|
步骤四:生成分镜脚本
将主题图片作为视频物料,调用大语言模型生成广告分镜脚本。
-- 创建提示词模板表
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 目录中。
步骤六:生成视频效果预览
生成的视频:
北境枭雄
云海剑仙









