Xcode 8:如何创建 iMessage 动图

玉面公主
• 阅读 3044

作者:Natasha The Robot,原文链接,原文日期:2016-07-01
译者:haolloyin;校对:Cee;定稿:numbbbbb

这周末我终于有点空余时间来捣鼓一个有趣的业余项目了。我看到好友 @chiuki 做了一个叫做 Fit Cat 的 Android Watch 应用,我也想在我的 Apple Watch 上搞一个,@chiuki 同意了。

Fit Cat 会依据你的步数显示可爱的小猫咪,设计师是很有才的 @VPoltrack。你偷懒时小猫就会睡觉,你健身时它就会玩毛线球。它还会唱 K、爬山,真的很可爱。

当我在新项目中打开素材库时,立马来了兴致。为什么不创建一些 Fit Cat 的表情然后分享给朋友呢?

制作静态表情很容易,但我需要给 Fit Cat 制作不同的动图。我记得在 WWDC 的 iMessage Apps and Stickers, Part 1 中有提到动图表情。演讲比较简单,但在 Xcode 上通过 UI 创建表情很不直观,所以这里我详细记录了动图表情的制作过程,这样你就不用看演讲了。

创建表情包

首先创建一个表情包,右键你的素材库文件或者点击底部的 + 号,然后选择 New Sticker Pack

Xcode 8:如何创建 iMessage 动图

创建表情序列

这一部分有点不太直观。表情包默认是静态表情。我尝试在 Attributes Inspector 中把它改成动图表情,但没有可用的选项。

这里的小技巧是,你必须右击表情包目录,然后选择 New Sticker Sequence。但如果你在表情区域内右击,必须先选择 Add Assets 再选择 New Sticker Sequence (这就是我掉坑的原因)。

Xcode 8:如何创建 iMessage 动图

添加表情

最后一步就是添加表情。我在这一步卡住了,因为只有第一帧外面有个轮廓。我不知道如何为表情添加其他几帧。

Xcode 8:如何创建 iMessage 动图

如果要添加额外的帧,只需要将下一帧图片拖动到第一帧之后即可。喏!这是一个典型的反人类 UI!

最后终于做出来一个击剑猫咪。

Xcode 8:如何创建 iMessage 动图

我最喜欢的就是点表情的播放按钮(译者注:仔细看上图,猫嘴那里有个播放按钮),看着这只猫在做击剑动作真有意思!

自定义动画

这个动画有点太快了,你可以在 Sticker SequenceAttributes Inspector 进行自定义:

Xcode 8:如何创建 iMessage 动图

在 Xcode 上可以实时看到所有改动。

我 ❤ iMessage 表情包!

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
SQL利用函数或存储过程求男或女的总分平均分
!(https://oscimg.oschina.net/oscnet/633e11621f3e13e713cf063db00d72c8aa0.png)函数alterfunctionxb(@xingbievarchar(2))returnstableas
Stella981 Stella981
3年前
Exceptionless
<divid"cnblogs\_post\_body"class"blogpostbodycnblogsmarkdown"<h1id"exceptionless.netcore开源日志框架"Exceptionless.NetCore开源日志框架</h1<blockquote<p作者:markjiang7m2<b
Wesley13 Wesley13
3年前
Activiti 工作流入门指南
<divclass"htmledit\_views"id"content\_views"<h1<aname"t0"</a概览</h1<p如我们的介绍部分所述,Activiti目前分为两大类:</p<ul<li<p<ahref"https://activiti.gitbook.io/activiti7deve
可莉 可莉
3年前
18个常用 webpack插件,总会有适合你的!
!(https://oscimg.oschina.net/oscnet/71317da0c57a8e8cf5011c00e302a914609.jpg)来源| https://github.com/Michaellzg/myarticle/blob/master/webpack/Plugin何为插
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Neo4j删除节点和关系、彻底删除节点标签名
<divclass"htmledit\_views"id"content\_views"<p<ahref"https://www.jianshu.com/p/59bd829de0de"rel"nofollow"datatoken"720f42e8792665773f66044d30a60222"https://www.jians