扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > 开发指南 > 模板素材顺序替换规范

模板素材顺序替换规范

更新时间 : 2021-07-30 17:48:52

标准模板素材替换

替换素材和group 的关系

如何获取标准模板可替换元素

请先参考 标准模板 config.json 的结构 https://www.seeshiontech.com/docs/page_65.html

获取替换元素及顺序

  1. 创建一个 list
  2. 按顺序遍历 assets 数组
  3. 检查每个元素是否包含 ui 字段,包含则追加到 list, 否则跳过, 直至遍历完成

得到的 list 就是已经排好序的可替换素材,传给引擎渲染时,需要严格按照 list 的顺序和数量传递。

动态模板替换

动态模板不同于标准模板,不需要获取替换元素的顺序。

动态模板在设计时就是按照传入的素材依次替换,需要设计师在设计时就确定了片段的顺序,并且至少提供一个只需要一个素材的片段,方便引擎自动排序。

首页 > 开发指南 > 模板素材顺序替换规范
模板素材顺序替换规范
更新时间 : 2021-07-30 17:48:52
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

标准模板素材替换

  • 标准模板的替换素材要严格和模板中的 config.json 中 assets 替换元素一致
  • 2.0.3以下版本中标准模板不支持type为2的文字直接参与渲染,文字需要在前端,客户端, 或者服务器端原先根据 assets 中的样式绘制成图片,再提交渲染。2.0.3及以上版本支持SDK绘制文字,但与type为3的文字一样需要设置字体文件。详情参考ReplaceableJson 高级替换格式说明与规范

替换素材和group 的关系

如何获取标准模板可替换元素

请先参考 标准模板 config.json 的结构 https://www.seeshiontech.com/docs/page_65.html

  • config.json 的结构如下
    {
    "settings": {
        "attr": 0 //属性设置 1:打开OIT渲染
    },
    "fps": 30, //模板的主帧速率
    "main": "comp0", //渲染使用的主合成的name属性,SDK支持预合成,所以导出的合层不止一个,这里定义的是主合成的name。
    "description": "合成 1", //模板的描述,对应AE中主合成的名称
    "version": "1.3.0.beta", //SDK内核版本号,与渲染效果息息相关
    "ui_version": "1.0", //编辑界面版本号目前分为1.0与2.0 2.0界面更加完善更加易懂
    "type": 1, //模版类型 1:普通模版 2:动态模版
    "snap": [], //整型数组,要截图的帧索引号,目前尚无实现
    "comps": [],
    "assets": [  // 保存所有素材对象数组, 有 ui 字段的元素为可替换的元素
       {   // 无 ui 字段,不是可替换元素,
            "key": "assetkey0",
            "ui_key": "",
            "name": "asset1.mp4",
            "type": 1,
            "num": 0,
            "size": [
                544,
                960
            ]
     },
    { // 有 ui 字段,可替换元素
        "key": "assetkey0", //素材的唯一ID
        "ui_key": "", //设计师在导出工具中为素材设置的标识key
        "ui_extra": "", //设计师在导出工具中为素材设置的附加数据
        "fps": 30, //在AE中解释素材选项中如果指定帧速率,则存在此key,否则为0或不存在
        "name": "asset1.mp4", //素材的名称,根据素材类型type的不同,name字段的作用也不同  
        "type": 1, //素材的类型 0:未知的素材类型 1:图片或视频或图片序列帧素材 2:OpenGL纹理素材 3:预合成素材 4:固态颜色素材 5:自定义素材
        "num": 0, //如果该素材为图片序列帧素材,那么这个num代表序列帧文件的数量,其他情况下num字段为0
        "size": [1080, 1920],//素材大小
        "ui":{
            //或图片
            "group": 10, //组索引
            "index": 0, //组内索引
            "duration": 278, //持续帧数
            "accept": 0, //接受素材类型
            "type": 1, //可编辑类型 1:图片/视频, 2:文字, 3: 高级字符动画
            "p": [100.5, 38.0],  
            "a": [100.5, 38.0],
            "s": [1.0, 1.0],
            "t": 1.0,
            "r": 0.0
        }
    },
    { // 有 ui 字段,为可替换元素
        "key": "assetkey0", //素材的唯一ID
        "ui_key": "", //设计师在导出工具中为素材设置的标识key
        "ui_extra": "", //设计师在导出工具中为素材设置的附加数据
        "fps": 30, //在AE中解释素材选项中如果指定帧速率,则存在此key,否则为0或不存在
        "name": "asset1.mp4", //素材的名称,根据素材类型type的不同,name字段的作用也不同  
        "type": 1, //素材的类型 0:未知的素材类型 1:图片或视频或图片序列帧素材 2:OpenGL纹理素材 3:预合成素材 4:固态颜色素材 5:自定义素材
        "num": 0, //如果该素材为图片序列帧素材,那么这个num代表序列帧文件的数量,其他情况下num字段为0
        "size": [1080, 1920],//素材大小
        "ui":{  //  文字素材
            "group": 9, //组索引
            "index": 0, //组内索引
            "type": 2, //可编辑类型 1:图片 2:文字
            "duration": 348, //持续帧数
            "default": "编辑文字", //默认文字
            "max": 4, //最大字数
            "font": "SimHei", //字体
            "size": 92, //字体大小
            "line_height": 110, //行高
            "fill": "#ffffff", //填充颜色
            "stroke": "#000000", //描边颜色
            "width": 0, //描边宽度
            "strokeOverFill": true, //描边是画在填充之上
            "align": 0, //排版方式 0:左对齐 1:右对齐 2:居中对齐
            "direction": 0,//文字方向 0:横向文字 1:纵向文字
            "shadow": "#000000", //投影
            "s_alpha": 0.0,
            "s_angle": 0,
            "s_dist": 0,
            "s_size": 0,
            "p": [0.0, 0.0],
            "a": [0.0, 0.0],
            "s": [1.0, 1.0],
            "t": 1.0,
            "r": 0.0,
            "area": [0, 0, 100, 100]//显示区域
        }
    }
    ]
    }

获取替换元素及顺序

  1. 创建一个 list
  2. 按顺序遍历 assets 数组
  3. 检查每个元素是否包含 ui 字段,包含则追加到 list, 否则跳过, 直至遍历完成

得到的 list 就是已经排好序的可替换素材,传给引擎渲染时,需要严格按照 list 的顺序和数量传递。

动态模板替换

动态模板不同于标准模板,不需要获取替换元素的顺序。

动态模板在设计时就是按照传入的素材依次替换,需要设计师在设计时就确定了片段的顺序,并且至少提供一个只需要一个素材的片段,方便引擎自动排序。