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

{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 下载
用户常见问题
首页 > iOS SDK > 模板素材替换指南

模板素材替换指南

更新时间 : 2021-11-16 11:28:31

标准模板素材替换

替换素材和group 的关系

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

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

获取替换元素及顺序

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

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

动态模板替换

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

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

首页 > iOS SDK > 模板素材替换指南
模板素材替换指南
更新时间 : 2021-11-16 11:28:31
  • 云渲染
    • 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 的顺序和数量传递。

动态模板替换

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

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