简单介绍下Principle,并分享一下学习笔记
Principle是一款小巧的交互软件,是目前我在工作中用来制作demo(动效)的主力软件,由于其可以直接导入sketch当前的画布内容,因此配合起Sketch来使用简直天衣无缝。
介绍的话就不多说了,先说说Principle和我接触过的其他交互软件的区别。最早接触的就是Axure,再后来换了mac之后,就尝试了Flinto、Pixate以及Principle。
在互联网圈,除传统的Office系列软件之外,Ps和Axure的使用人数应该也能排在前几名的。而作为交互软件始祖,Axure的功能全面,特别是在8之后,Axure已经可以实现大部分基础的动效了。因为Axure既可以画图,又可以编辑逻辑制作demo,如此全面的软件都会有一个缺点:卡 and 复杂!
Flinto最早只有网页版,后面才出了mac版,其链式的制作逻辑在当时来说非常新颖,因此上手很快,学习成本也很低,但是怎么说呢,反正我始终没有爱上它。
Pixate给我的感觉就像是瘦身后的Axure,重点放在移动端,加强了动效实现的效果,有双系统版本,可惜现在已经不更新了。
最爱的要放在最后说,Principle给我的第一印象就是:这是不是Sketch团队做的?因为这两个货的界面是在太像了,而且其上手也是非常简单,并且支持桌面实时预览和手机预览,导出gif的功能也非常实用。
Principle制作demo的原理类似Flinto,采用的也是链式的制作逻辑,核心交互原理有两个,一是Animate,另一个是Drivers。
Animate指的是不同画板之间元素的交互,即画板与画板之间的交互。
上图中两个画板间的图层相同,只是图层的属性不同。
导入Principle中后,分别对黄色的按钮编辑了交互动作,使其被点击时跳转到另外一个画板。
Principle的好处之一在于,其可以为同一个图层在不同画板之间的属性变化自动添加动效变化,你所需要做的只是调整动效的触发时间(时间轴)以及动画效果(动画曲线),这一点和Keynote的神奇移动效果有点类似。
目前Animate支持的属性变化包括:xy轴位移、宽度高度变化、不透明度变化、填充颜色变化、圆角变化、描边宽度变化、放大倍数变化、旋转角度变化、阴影距离及渐变变化、旋转角度变化。
Driver指的是同一画板内元素的交互,即画板自身的交互。
例如上图中,A按钮有一个横向拖拽的交互效果,同时我希望绿色的色块能在A按钮拖拽的过程中发成图中1、2、3所示的状态变化。
如gif所示,在Drivers中,当当前画板存在可交互的元素时,其他元素(包括可交互的元素自身)都可以随着交互元素的交互状态变化产生属性变化。
目前Drivers支持的属性变化包括:xy轴位移、宽度高度变化、不透明度变化、圆角变化、描边宽度变化、放大倍数变化、旋转角度变化、阴影距离及渐变变化、旋转角度变化。
通过Animate以及Drivers的相互配合,基本已经可以实现大部分的动效,看下Principle官网上给出的范例。
在Principle的官网上有教学视频,个人觉得如果你真的认认真真边看边做搞定了那7个视频,那基本已经可以直接上手去做实际的项目了,不用再淘宝买其他的教学视频,因为它真的:很简单。
官方教学视频:http://principleformac.com/tutorial.html
这里放下我自己当时看完后的笔记,以下内容,建议你可以先收藏,看完视频再来看,绝对对你有帮助。
Learn how to make scrolling content and a tab bar
只能对单个对象进行滑动:图层/组。
可以选择横向滑动还是纵向滑动。
滑动有可视区域,类似axure的动态面板显示区域,可以通过勾选Clip Sublayers实现。
可视区域默认大小是图层/组的实际大小,需要缩小,因为只有缩小后才有空间实现滑动。
点击对象后出现的闪电即可编辑动作,点击动作后直接拖拽至目标画板。
在动作目标画板上对对象进行编辑,默认出现对应的动效,如大小变化、旋转、位移、颜色变化、圆角变化等。
不同画板之间的统一对象名称需要一样,否则会出现动画混乱
Learn about Sketch import, Frozen properties, screen to screen transitions and how to share your design with others.
可以从sketch里面导入当前画布的所有画板。
sketch文件里面不能存在mask,否则整个画板会变成一个图层,解决方法是将mask与被遮住对象进行编组。
单个对象可以拖拽
如要实现‘按住拖拽松手还原’的效果,需要两个一样的画布(图层名称需要一样),通过drag begin/drag end实现,drag end路线中可以冻结对象Y轴位移实现‘水平还原’效果。
图层属性中,若opacity为0%时,图层动作是不可激活的。
若要图层透明但动作可被激活,可通调整图层填充颜色fill的填充浓度a至0%即可。
通过在目标画板对图层进行编辑实现。
Learn how to use paged scrolling to swipe between screens of a design and use drivers to make a position indicator. The video also has tips for using the preview window and keyboard shortcuts to make recording easier.
页面轮播需要将多个对象平均排开进行编组,选定page,并且选定好可视区域,如果要实现引导页效果,可是区域宽度需要与屏幕宽度一致。
需要通过drivers实现,选中所有图层添加效果,在不同时间节点对图层进行编辑以实现效果变化。
Learn how to use Principle's Driver feature to make a layer rotate during a drag.
首先需要添加属性变化项,再在不同的时节点对对象的属性进行编辑。
时间轴需要当前页面存在可交互的对象,才能在时间的维度上产生属性变化。
可以只有一个可交互的对象,其余对象不一定要编进该对象的组内。
Best practices for working with images in Principle, including Import, Retina assets, dragging from Sketch, updating multiple layers' assets, and cropping.
可以对图片的后缀名增加@2x、@3x,拖入principle后直接按倍数缩小。
可以复选不同画板内的同一图层一起更改图片。
可以从sketch里面直接把图层/组拖进principle,拖入时可以在sketch里面选择导出的倍数@2x、@3x。
priciple也可以实现类似蒙版的效果,将单一图片图层进行编组,然后勾选Clip Sublayers,选择可视区域大小。
Use Long Press and Auto events to make an Apple Watch alert interaction.
可以将一个图层拖拽至另一个图层上,将其变成子图层,母层通过Clip Sublayers可以实现蒙版效果。
子图层内可以继续嵌套子图层。
由于上传图片大小限制,很多制作的demo都无法上传,这里只能上传一张之前做过的底部导航的动效demo,还是裁剪过的。
想说明的是,不管是页面场景切换,还是微动效,只要不涉及到特别复杂的形变(比如线条的抖动和扭曲),Principle都能很好的实现你的想法和目标。
非常感谢您的阅读,您的支持是我最大的动力!