UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频
从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度。吸取反馈建议后,终于在2018年1月11日正式推出了全新版本的 UWP App,定名为“来画视频”。(根据微软应用商店的命名规则,大家可以继续搜索“来画Pro”)
全新版本的 UWP 来画视频,适配了来画平台的手绘视频模板,对创作工具做了全新的改版。
适配来画平台手绘视频模板
来画成立两年多的时间里,一直在积累手绘视频模板,目前来画平台的模板有上千个,覆盖了各种风格和用途。利用模板,用户可以很方便的创作手绘视频,应用到很多的场景。而创作的过程,只需要基于模板,简单的做编辑、添加和替换就可以了。所以从来画Pro 发布之初,适配平台模板一直都是用户呼声很高的需求。但是由于来画平台和 UWP 创作工具的功能和形式差异,这一需求一直到这个版本才得到实现。在来画平台、UWP 和 Mobile App 模板可以互通后,用户对于模板的使用就变得更加灵活,模板的使用度也会变高,对于模板设计师来讲,不只可以用平台来创作模板,使用功能更强大的 UWP App 和更灵活的 Mobile App 都是很好的选择。
先来看看目前 UWP 来画视频中模板的展现方式:
在首页展示模板缩略图列表,选择模板后,进入模板详情页面,展示模板的基础信息、生成视频和相关类型的推荐模板。点击“立即下载”按钮后,开始下载模板信息和文件。
平台的模板存储形式为一个 json 配置文件,存储了模板名、模板尺寸、时长、分组信息、素材信息、音乐信息等字段,每个涉及到文件的字段,都是一个 URL。所以 UWP 在下载模板时做的工作,就是下载这个配置文件,解析文件里所有的 URL,下载对应资源并存储到某个固定文件夹下。把位置信息、动画信息等转换成 UWP 创作工具可以使用的格式,完成后用户就可以在创作工具中使用这个模板了。
全新的创作工具
1. 工具分组
这是新版的创作工具界面,相比于旧版的界面,最大的变化就是“分组”。原有的视频创作方式,是以素材为单位,添加若干素材后,顺序播放。这种方式遇到的一个难题,就是当素材数量过多,比如超过60-80个时,素材间的覆盖就会变得严重,想选中和编辑素材就变得比较困难。另外对于很多手绘视频创作者来说,心里对于视频会有分镜头的概念,一个视频由几个分镜头组成,而每个分镜头又由多个素材的动画组成。这样就有了新版的工具分组。
通过分组的创作工具,用户在每个分镜头中只需要加入少量的素材,就可以完成一个分镜头动画。而通过添加多个分组,让多个分镜头组成一个手绘视频。每个分镜头可以单独进行动画设置、预览和素材调整等操作。再配合我们上一篇(UWP 手绘视频创作工具技术分享系列 - 有 AI 的手绘视频)提到的来画和科大讯飞的智能配音,用户可以针对每个分镜头,选择不同的声音进行配音,并在每个分镜头间根据转场动画时长来做配音停顿,这样配音的同步变得更加简单,而且每个视频中可以出现多种声音,更加灵活。
在技术实现方面,原有引擎中以 Sprite item 为操作单位,而分组后,加入了 Group 这一层的操作,Group 和 Sprite 间有从属关系,Group 有自己的索引、动画设置和画布位置、缩放等信息。Group 间没有过多的关联,所以 Group 可以随意的拖拽顺序,添加和删除。
可能你也注意到了,新版的工具界面重新定义了 Title Bar。我们认为系统默认的 Title Bar 我们的利用度较低,为了更大限度的扩大用户的可操作区域,让整个工具更有浸入感,我们把原来右侧的元素类型菜单,放到了 Title Bar 上。如果大家对这个实现感兴趣,可以参考:Windows Dev Center - Title bar customization,也欢迎和我们交流。
2. 全新的绘画功能
在分组功能之外,我们也顺应 Windows 10 的更新方向,不断的拓展绘画功能。
原有版本我们更多的是直接使用了系统的 InkToolbar,包括画笔选择,画笔颜色和粗细等的操作。而新版本我们重新定义了绘画菜单。
如上图左上角的圆形菜单,最外层是常用的推荐颜色和推荐的画笔粗细,里层是不同的画笔、橡皮、调色板和画笔粗细。其中推荐颜色控件,是一个自定义的圆形列表控件。
选择调色板后,出现如下的界面,以 RGB、HSB 数值选择,和颜色选择的角度,去设置画笔的颜色。
3. 全新的图片编辑功能
过去我们也讲过,SVG 相比于 PNG,在手绘视频中的表现形式更丰富,因为 SVG 有路径信息,而 PNG 没有。所以我们在新版的开发过程中,也在不断考虑 PNG 更多的展现方式。
如上面的图片编辑界面,我们对于图片,做了滤镜、编辑、描图和调整的功能。下面四张图依次展示了这四个功能点。
其中滤镜、编辑和调整功能都很常规,主要说一下描图功能。
描图功能的目的,是让用户对于 PNG 做自定义的描绘操作,从而生成一张 SVG,这张 SVG 的底图是这张 PNG,而路径(也就是视频中的绘画过程)是用户自己描绘的线条。绘画过程,是一个底图根据路径被不断展示出来的形式。如下图所示,对比上面的描图界面,这张 PNG 生成的 SVG,描绘过程是用户描图的路径。通常用户想做这个操作,需要先在 PS 里对图片做编辑操作,然后倒入到 AI 中,描绘路径后保存为 SVG 文件,再导入到来画视频中。而现在在来画视频中就可以完整整个的操作过程。
好了,全新的 UWP 来画视频就介绍到这里,欢迎大家在 Microsoft Store 搜索“来画”下载使用,如果大家对 UWP 中的技术实现感兴趣,欢迎和我们交流,谢谢!
UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频的更多相关文章
- UWP 手绘视频创作工具技术分享系列
开篇先来说一下写这篇文章的初衷. 初到来画,通读了来画 UWP App 的代码,发现里面确实有很多比较高深的技术点,同时也是有很多问题的,扩展性,耦合,性能,功能等等.于是我们决定从头重构这个产品,做 ...
- UWP 手绘视频创作工具技术分享系列 - 有 AI 的手绘视频
AI(Artificial Intelligence)正在不断的改变着各个行业的形态和人们的生活方式,图像识别.语音识别.自然语言理解等 AI 技术正在自动驾驶.智能机器人.人脸识别.智能助理等领域中 ...
- UWP 手绘视频创作工具技术分享系列 - Ink & Surface Dial
本篇作为技术分享系列的第四篇,详细讲一下手绘视频中 Surface Pen 和 Surface Dial 的使用场景. 先放一张微软官方商城的图,Surface 的使用中结合了 Surface Pen ...
- UWP 手绘视频创作工具技术分享系列 - 手绘视频与视频的结合
本篇作为技术分享系列的第三篇,详细讲一下手绘视频中结合视频的处理方式. 随着近几年短视频和直播行业的兴起,视频成为了人们表达情绪和交流的一种重要方式,人们对于视频的创作.编辑和分享有了更多的需求.而视 ...
- UWP 手绘视频创作工具技术分享系列 - SVG 的解析和绘制
本篇作为技术分享系列的第一篇,详细讲一下 SVG 的解析和绘制,这部分功能的研究和最终实现由团队的 @黄超超 同学负责,感谢提供技术文档和支持. 首先我们来看一下 SVG 的文件结构和组成 SVG ( ...
- UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制
本篇作为技术分享系列的第二篇,详细讲一下文字的解析和绘制,这部分功能的研究和最终实现由团队共同完成,目前还在寻找更理想的实现方式. 首先看一下文字绘制在手绘视频中的应用场景 文字是手绘视频中很重要的表 ...
- UWP 手绘视频创作工具技术分享系列 - 手绘视频导出
手绘视频最终的生成物是视频文件,前面几篇主要讲的是手绘视频的创作部分,今天讲一下手绘视频的导出问题.主要以 UWP 为例,另外会介绍一些 Web 端遇到的问题和解决方法. 如上所述,手绘视频在创作后, ...
- UWP 手绘视频创作工具技术分享系列 - 位图的绘制
前面我们针对 SVG 的解析和绘制做了介绍,SVG 是图片的一种形式,而另一种很重要的图片是:位图,包括 png.jpeg.bmp 等格式.位图的基本规则是,组成的基本元素是像素点,由宽度 * 高度个 ...
- 恒天云技术分享系列5 – 虚拟化平台性能对比(KVM & VMware)
恒天云技术分享系列:http://www.hengtianyun.com/download-show-id-14.html 概述 本性能测试报告将详细陈述各虚拟化平台基准性能测试的主要结论和详细结果. ...
随机推荐
- 003Java语言环境搭建
JRE,JDK JRE(Java Runtime Environment java运行环境):包括java虚拟机和java程序所需要的核心类库, 如果要运行一个开发好的java程序,计算机中只需要安装 ...
- 分布式:2PC,3PC,Paxos,Raft,ISR [转]
本文主要讲述2PC及3PC,以及Paxos以及Raft协议. 两类一致性(操作原子性与副本一致性) 2PC协议用于保证属于多个数据分片上的操作的原子性.这些数据分片可能分布在不同的服务器上,2PC协议 ...
- 《Effective Java(中文第二版)》【PDF】下载
<Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...
- Java思维导图之Class对象
Class对象相关知识导图: 导图源文件保存地址:https://github.com/wanghaoxi3000/xmind
- SpringMVC随笔记录
在web.xml里可以配置webapp的默认首页,格式如下: <welcome-file-list> <welcome-file>index.html</welcome- ...
- 框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解)
框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解) 通过昨天的讲解,我们已经理解了运行时类型识别是什么. 比如 CObject * pthis = (Cobject *)Cre ...
- linux权限设置(开放某个文件夹给指定用户)
问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -lstep2: usermod -a -G 指定文件夹 ...
- CSS height:100%无效
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/38 浏览器根本就不计算内容的高度,除非内容超出了视窗范围(导致滚 ...
- Windows as a Service(4)——使用Intune管理Windows10更新
这是这个系列的最后一篇文章,我已经花了三篇的篇幅和大家分享有关于Windows as a Serivce的相关内容,链接如下: Windows as a Service(1)-- Windows 10 ...
- lesson - 11 课程笔记
一.sed 作用: sed 是一种流编辑器,它是文本处理中非常重要的工具, 能够完美的配合正则表达式使用.处理时,把当前处理的行存储在临时缓冲区中, 称为“模式空间(pattern space)”, ...