-
智慧城市,让生活更美好
设计动态 2022-05-16编辑导语:随着现代科技的不断发展进步,智慧城市的建设也在不断发展,本篇文章作者分享了有关智慧城市的内容,从智慧城市的概念、背景和发展历程、特点以及项目架构设计等内容都一一讲述,感兴趣的一起来看一下吧。 一、如何理解智慧城市/智慧城市是什么 提到智慧城市,常会想编辑导语:随着现代科技的不断发展进步,智慧城市的建设也在不断发展,本篇文章作者分享了有关智慧城市的内容,从智慧城市的概念、背景和发展历程、特点以及项目架构设计等内容都一一讲述,感兴趣的一起来看一下吧。
一、如何理解智慧城市/智慧城市是什么 提到智慧城市,常会想起上海2010年世博会“Better city, Better life.城市,让生活更美好”。关于智慧城市,其实没有一个共识性的定义,想从这两点谈谈对智慧城市内涵的理解。
1. 从AI+行业理解 我们在谈论AI+、智慧化概念的时候,说的是以人工智能技术升级传统行业。那 智慧城市就是以人工智能技术升级城市公共服务。
麦肯锡的《智慧城市:数字科技打造宜居家园》报告中包括了出行、安全、健康、能源、水、垃圾、经济发展和住宅、参与和社区。不同厂商智慧城市解决方案覆盖的行业范围大有差异。
2. 从政府职能理解 《新型智慧城市发展报告2017》对智慧城市的定义是“智慧城市系统应是一个全面、精确、实时把老百姓需求与城市管理决策对接在一起的决策辅助系统,是一个政府、社会、公众三方参与的可持续的商业模式”。
我理解政府职能可以粗略划分为决策和服务两大类,智慧城市涉及G端、B端、C端三端用户, 是把C端用户、B端企业和G端政府精准对接的辅助决策系统 。
如何对宏观和产业做出更精准的决策;如何服务好企业,降低信息不对称性让企业少跑腿;如何服务好普通市民,让市民生活便利,更美好,实现更精细化的管理决策。比如阿里云城市大脑解决方案中顶层按G端、B端、C端分为优政-政府治理(G端)、惠民-城市服务(G端)和兴业-城市产业(G端)。
二、智慧城市的背景和历程/为什么会有智慧城市 2017年国家提出数字中国战略,2018年各省份制定数字经济、数字城市、数字政府等未来多年战略规划。密集出台了《关于促进智慧城市健康发展的指导意见》、《国家智慧城市顶层设计指南》、《新型智慧城市评价指标(2016年)》等。大体政策历程可以参考华润《智慧城市白皮书城市建设运营数字化转型》。
图片来源:《智慧城市白皮书城市建设运营数字化转型》
《华为AI赋能智慧城市白皮书》将智慧城市发展历程划分为试点探索(2012-2014)、落地实施(2014-2016)、发展转型(2016-2020)、新篇章(2020至今)四个阶段。划分标准是从政策文件出发进行划分。
《百度智慧城市白皮书》将智慧城市发展历程划分为概念导入期(2008-2012)、试点探索期(2012-2016)、统筹推进期(2016-2020)、集成融合期(2020至今)四个阶段。划分标准更多是从技术和推进方式来划分。
三、智慧城市项目的特点 1. 周期长、回款慢、工期紧张 从时间维度看,政府项目有周期长、回款慢、工期紧张的特点。周期以年为单位,交付部署完后还有后续运维期(一般3年)。
项目初期由渠道商务打单,政府与多家意向单位沟通,听取各家解决方案并选择最合适的。由于招投标一般中期才开始,供应商需要前期提前投入,且项目初验、终验不同阶段才能获得对应款项。
需要成本把控和风险防范。可能的风险点有,一是项目废标,如去年年底Z市公安1亿项目废标;二是客户中途替换供应商;三是客户觉得功能已经实现开始砍价。需要控制客户预期,做好投产评估。
2. 参与主体多、利益复杂 从参与主体看,政府项目有参与主体多、利益复杂的特点。参与主体有客户、供应商、监理等。客户侧,客户有不同的层级,高层领导、中层干部、基层办事员。日常工作中接触最多的是基层办事员,了解其工作流程和痛点。中层干部一般是周期性汇报或者节点决策时出现。而只有在项目启动会或者重大的汇报节点,才会和高层领导接触。
这里存在两个错位的三角形,决策权: 高层领导>中层干部>基层办事员,对接密度:基层办事员>中层干部>高层领导。
政府项目一般遵循自上而下的建设路径,领导意志层层下达,过程容易扭曲。如果涉及多个部门的项目,会出现领导意见纷杂、众口难调的情况,不同部门间可能存在深层次利益冲突。
供应商侧,可能情况有,一是项目分为ABC多个包,不同的包由不同供应商负责;二是政府只会和有资质、体量大的公司签合同,这一公司作为总包,再把各模块分包给更有专业优势的分包商。
3. 需求变更频繁 这一特点是由特点2衍生的,“我不知道我要什么,我只知道我不要什么”。
智慧城市项目需求是自上而下传导的,可能是政策导向性业务需求,可能是机构领导指派的任务,也可能是为了解决机构内部问题。需求需要决策审批,由于多层级领导,决策链路长,中途易发生需求变更,可能面临多次推翻。
4. 需要考虑系统融合 这里针对二期、三期项目而言,需要考虑与一期已经建成系统的融合。即使一期做得不尽人意,客户也不会希望花了大价钱的系统就荒废了,还是希望能够和二期三期衔接起来。
5. 注重安全性 政府一般有内网和外网之分,项目注重安全性,需要本地化部署或者专有云部署。
四、智慧城市产业图谱及项目架构设计 1. 智慧城市产业图谱
图片来源:《中国信通院2020智慧城市产业图谱研究报告》
2. 智慧城市项目的架构设计 感知层: 底层是外部数据的收集,“模态”是生物凭借感知器官(视觉、听觉、触觉、味觉、嗅觉)与经验来接收信息的通道,多模态感知指的是通过传感器、探头等硬件设备采集外部数据,将获取的信息包括文字、图片、音频、视频等进行融合。 平台层: 数据资源中心,包含数据管理和运营、数据储存和计算、数据治理工具等模块,对从感知层采集到的数据进行加工,为模型所用。模型处理中心,包括深度分析、智能预测、视觉计算等模型。 应用层: 即应用场景,对平台层处理过的数据和模型结果进行应用。包括优政-政府治理(TO G)、惠民-城市服务(TO C)、兴业-城市产业(TO B)。 五、智慧城市的常见问题 甲子光年曾做过两篇关于智慧城市的报道《7年了,为什么智慧城市还不智慧?》和《三问智慧城市:建设8年为何还处在初级阶段?》提到数据孤岛、数据共享难的问题。基本每个项目都会遇到这个问题,政务服务数据管理局、大数据管理局的成立,政府数据统一开放平台的建设,都是为了打破烟囱林立,数据孤岛的局面,但目前效果没有预期的好。登录一些地方的政府数据统一开放平台,很多数据目录中包含的数据字段很少,且口径较粗,都是表面数据,没有细颗粒度数据,难以展开分析和下一步工作。
六、从PM视角看智慧城市机器学习项目的落地 有天在商场看到厕所外面有一个智能屏幕,上面显示蹲位剩余情况比如“5/14”或者“空”。
我们找了一个儿童厕所试验了一下,进去关上门后从原本的0/3变成了1/3。思考下这个场景背后的需求和实现。在旅游景区、机场、火车站、商超等人流量密集的大型公共场所,上厕所经常是一个痛点,找厕所费劲、厕所排队时间长、卫生清洁状况差等。
作为管理人员,传统的解决方案是更加清晰显眼的指引路牌、合理规划蹲位、加大清洁人员值班的密度等。是否可以借助人工智能使公厕更加智慧化和便民化?
比如通过传感器、物联网技术提醒纸巾、洗手液等物资供应补给;通过人流量和物资消耗数据建模计算调整清洁频次;根据厕所人流量和距离推荐最优选择,提醒游客旅客前往人流量小的厕所等等。
这里想从PM视角将看机器学习项目落地的全过程:
1. 需求定义 在和客户沟通交流的过程中,分析客户的需求,传统方式是什么,是否需要AI加持,通过AI加持可以达到什么效果。在需求定义过程中产品需要做的事情:
与客户加强沟通,了解客户的需求,客户对模型能力的预期。如推荐的实时性、预测的精度、使用模型后用户满意度能提升多少等等, 最好是有一个定量的目标,便于研发同学进行评估 。 将抽象的业务问题转化为数学问题或者技术问题并传达给研发同学进行技术预研。如根据厕所人流量和距离推荐最优选择,转化为通过传感器收集到厕所人流量信息、通过LBS收集到用户和厕所的距离信息进行建模。 向研发介绍需求背景、业务目标、数据大致情况,由研发评估技术可行性和投产。 2. 数据采集 机器学习建模需要用到大量数据,在数据采集过程中,需要解决模型需要哪些数据输入、数据从哪里来、是否需要标注等问题。
在数据准备过程中产品需要介绍数据流转和采集方案,与研发同学共同确定所需字段和表结构。
3. 数据预处理 采集完数据后,并不能马上开始建模工作。在一个数据分析建模的项目中,数据清洗工作量可能高达80%。数据质量的好坏直接影响了建模效果,所以在数据采集完后,需要对数据进行清洗加工,确保入模数据的质量。常见的数据问题有 数据缺失、日期格式不统一、重复、口径不统一、频率不统一、脏数据等 ,这里总结了一些数据处理的方法。
数据缺失处理: 设定缺失阈值,如果缺失情况超出了既定阈值,就剔除相应指标,如果没有超出则保留并补全缺失值。补全方法有以某个设定的常数替换缺失值;以均值、中位数或众数替换缺失值;以随机生成的值替换缺失值。 去除异常值: 避免极大极小值(outliner)对模型的影响,比如K-means算法对异常值非常敏感。 口径不一致需进行统一: 有些指标是绝对值,有些指标是当期同比,有些指标是累计同比,需要进行统一。指数或已经带百分比率的指标一般不需要计算同比。 频率不一致需进行变频: 有些是高频如日、周的指标,有些是低频如月、季的指标,需对指标进行变频处理,注意只能是高频变低频,变频也有多种计算方式,如合计值、平均值、是否限于当年等,需根据业务情况进行评估和选择。 进行平稳性检验: 不符合平稳性检验的要进行差分处理。 在数据预处理完后,切分数据集,一般分为训练集、测试集和验证集。如果只有训练集和测试集,一般按照70/30划分,如果加上验证集,则按60/20/20划分。
在数据预处理过程中产品需要与算法共同确认数据清洗规则。
4. 模型构建 在数据清洗完后终于来到了建模这一步。此处引用刘海丰老师的定义:
建模的过程是从样本数据中提取可以很好描述数据的特征,再利用特征建立出对未知数据有优秀预测能力的模型。 机器学习三大场景为分类、回归、聚类,具体应该用哪一种模型,需要根据目标变量进行定义。如果预测结果是两个离散的值,适用分类模型。如果预测结果是连续的值,适用回归模型。常见的分类算法有LR,NB,SVM,DT,RF,KNN等,常见的回归算法有lasso,ridge,gbrt,xgboost, garch常见的聚类算法有K-means, dbscan等。研发同学会根据目标变量、数据情况,结合算法优劣点,选择合适的模型。
5. 特征选择 前文提到运用机器学习模型,输入大量指标,输出目标变量的预测值。
并不是所有我们能获取的数据指标都会用在模型预测上, 我们要找到优质的因子/特征,简单来说就是找到那些对目标变量Y预测效果好的解释变量X 。
筛选方法有很多种,比如常见的斯皮尔曼相关系数、皮尔逊相关系数等,或者一些自研方法。在经过数理检验筛选出一批优质特征后,我们还可以从业务意义进行进一步筛选。
6. 模型训练与评估 通过不断地训练模型、验证模型和调优,达到最优的预测效果。对模型效果进行评估。回归模型常用的评价指标有MAE平均绝对误差、MSE均方误差、RMSE均方根误差,误差数值越小越好。
分类模型常用的评价指标是基于混淆矩阵的accuracy,precision,recall,F1-score等。混淆矩阵:
True Positive(真正,TP):将正类预测为正类数; True Negative(真负,TN):将负类预测为负类数; False Positive(假正,FP):将负类预测为正类数; False Negative(假负,FN):将正类预测为负类数。
7. 模型融合 机器学习同时训练多个分类和回归模型,再通过集成的方式进行模型融合,提升模型预测的准确率。回归模型的融合是通过算法平均或加权平均,常见的融合方法有bagging, boosting和stacking,分类模型的融合是通过投票融合方法,票数最多的预测结果为最终结果。
参考材料:
阿里城市大脑解决方案; 华为AI赋能智慧城市白皮书; 华润智慧城市建设数字化转型白皮书; 百度智慧城市白皮书; 麦肯锡智慧城市:数字技术打造宜居家园; 中国信通院2020智慧城市产业图谱研究报告; 7年了,为什么智慧城市还不智慧?| 甲子光年; 三问智慧城市:建设8年为何还在初级阶段?| 甲子引力。
本文由 @RfSr 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于CC0协议。
给作者打赏,鼓励TA抓紧创作!
{{{path> 赞赏
-
为什么国内大部分SaaS都难以盈利?
设计动态 2022-05-16编辑导读:国内的SaaS企业发展时间并不长,相对于国外,市场成熟度还不高。很多SaaS企业客户流失率高,收支不平衡,为什么这么难盈利呢?本文作者对此进行了分析,希望对你有帮助。 常有各行业人士咨询我SaaS业务问题时,会不自觉的问我这样一个问题:中美之间的Sa编辑导读:国内的SaaS企业发展时间并不长,相对于国外,市场成熟度还不高。很多SaaS企业客户流失率高,收支不平衡,为什么这么难盈利呢?本文作者对此进行了分析,希望对你有帮助。
常有各行业人士咨询我SaaS业务问题时,会不自觉的问我这样一个问题: 中美之间的SaaS差距是多少?
从市场的成熟度来讲,大概相差10倍左右。
尽管国内越来越多的VC投资SaaS行业,但国内VC市场对SaaS的整体接受度远低于美国市场。
国内SaaS VC对整个行业的掌握和了解的认知程度相对成熟, 在做风险评估时,VC需要的是数据而不是故事。
目前国内能够在网上查询到SaaS企业将近3500家左右,剩下的4000到6000左右的SaaS初创型企业未能直接在网上搜索得到,导致这一结果是客户流失率高,收支不平衡,营销能力不足,很多SaaS初创型企业未能熬到A轮融资便在行业里悄声殆尽。
一、是什么加速了国内SaaS行业的发展? 随着国家大力的推行数字化建设,越来越多企业在SaaS BI(商业智能化)产品方面投入成本,利用其工具进行业务经营战略决策。
另一方面,在疫情状态下中小企业降本增效的愿望越来越迫切,企业用户对SaaS产品的价值认知也不断在提升,接纳程度也达到了成熟点等等,一系列环境因素推动了SaaS行业的发展。
同时,SaaS独特的商业模式,使得其近期被讨论的话题高居不下。 SaaS的商业模式与传统的软件模式最大的区别在于,传统软件:产品开发—市场——销售——售后,而SaaS模式:获客——留存——增长路径。
传统的软件交易存在很多不确定性因素,而且交易周期比较长和成本大,一旦投入使用后,未能达到生产预期,那么IT采购团队必须要为此付出惨痛的代价。而SaaS软件,试错成本小,可以快速交付使用,我们与客户签署合作后,仅是意味着我们获得了提供产品服务的机会。
随着国内越来越多的互联网企业奔赴美国上市,以及在后疫情状态下,中小企业降本增效的愿望越来越迫切,也推动了SaaS行业的发展。 我相信在未来的5年内,这个差异程度会下降在6倍左右徘徊。
二、为什么国内SaaS企业大部分都不赚钱? 通常,国内SaaS企业大多会面临: 这是企业软件业务还是SaaS业务?
过去,互联网软件企业热衷售卖软件或者是定制项目的开发,一旦选择转型SaaS后,依旧采用过去卖软件的方式进行SaaS产品的售卖,而SaaS业务主要收入不是来自于一次性项目部署和研发,而是用户持续订阅。
采用传统软件销售方法方式,在获客方面SaaS企业不得不利用广告投放来吸引免费试用的新用户,再通过销售人员进行转化。
大部分程度上这种方式是赚到了钱,但是它无法让SaaS企业完成增长和规模化的复制。
1. 获客成本过高,并且SaaS销售获客缺少系统性策略 销售 SaaS 产品与销售传统企业软件的思维方式是有区别的:前者是销售软件并进行交易;后者出售服务并获得提供服务的机会。
销售 SaaS 是为了追求客户的 LTV(终身价值),这就是为什么许多 SaaS 公司将 CSM(客户成功)与销售和营销并行。
迄今为止,这种思维方式的转变是大多数中国SaaS初创公司面临的主要问题—— 以销售传统企业软件的方式销售SaaS产品。
为了生存,许多SaaS公司不得不雇佣一些销售人员来获得他们期望的收入。但本质上,SaaS 竞争最终是关于敏捷开发和交付以及通过发现和满足客户的新需求来追加销售的能力,而不是客户获取。
2. SaaS产品缺乏创新 国内SaaS在客户留存面临很大的挑战,最主要原因是产品同质化太严重了。 越来越多的SaaS企业相互之间产品借鉴和抄袭,提供相相似的解决方案和用户业务场景。
另一原因是产品解决方案过于单一,业务场景未能深入,解决问题不够彻底。
美国SaaS企业客户年流失率的中值为7%,但国内SaaS公司的客户年流失率平均在30%,这是一个可怕的征兆。
我在对外做信息化、数字化落地咨询服务时,常常会问企业CEO几个核心问题: 你找我来想要解决什么问题?你对这个问题的产生了解多少?为什么我们一定要解决这个问题,不解决行不行?
通常CEO们第一反应是,我花钱请你过来是让你帮我解决问题,给我答案的,而不是让你来给我提问题。
但,随后思考一番后,他会对我说:你这几个问题提的真好,我已经清楚问题在哪里了,接下来我们该如何进行解决方案的落地。
之所以提出这些问题,也是希望各位SaaS从业者认真的思考一下: 企业使用SaaS的成本(不一定是指费用)很高,如果我们的SaaS无法提供“颠覆性创新”,那么企业用户选择它的动力在哪里?
如果现有产品和新产品之间没有显着差异,客户为什么要更换他们已经在使用的系统?
同时,商业应用的成功高度依赖于相关的领域知识。目前在国内市场,多家SaaS公司在同一个细分市场上竞争,因此更注重营销而不是产品创新,最终形成恶性循环。
3. 国内企业用户需求多样化和复杂,难于规模化 有个真实的案例,朋友将SaaS产品出售给两家同行业性质的企业,同一套解决方案的部署使用,几个月后,两家企业负责人再次找到他,都要求进行定制化研发,整个业务场景和业务流程出现了差异化。
做定制,成本可能hold不住,不做可能会面临客户流失问题。
这也是为什么越来越多人吐槽和抱怨SaaS厂商未能真正意义上满足客户的需求,这到底是SaaS厂商产品创新的能力不足,还是客户的需求过于多样化呢?
由于国内的市场需求更加多样化和复杂,要应用一种产品来满足所有客户的需求和规模是非常困难的。
三、未来SaaS创业者困境如何破? 国内许多SaaS从业者非常喜欢拿美国SaaS与国内SaaS进行比较,一方面美国SaaS发展成熟,市场规模大,另一方面SaaS产品商业模式较为先进。国内不少SaaS从业者争相模仿,企图通过产品或商业模式的抄袭借鉴,实现SaaS产品的业务落地。
经过多年发展,国内SaaS从业者渐渐理解到,光靠模仿国外的产品或者商业模式,并不见得真的能够安全的落地。确实, 商业的本质就是一场买卖的交易,你与客户之间交易的是共同认知的价值产品,而不是一堆好看的Ui界面。
SaaS创业者,在开始产品设计前,一定要先了解你的目标企业用户为什么要使用SaaS,以及使用SaaS产品如何能够实现解决问题,这一点是非常的重要的。
在面对市场竞争时,SaaS初创企业需要回答以下三个问题:
你的目标客户是中小型企业还是大型企业客户? 你们提供标准产品还是定制服务? 你的目标是一般性的多个行业还是特定的垂直行业? 即使我们在最初定义业务时已经有了一些偏好。
应该优先考虑的是如何在客户成功方面建立核心竞争力: 你的客户如何通过你的 SaaS 服务实现他们的目标,并成为你的忠实客户,从而带来可持续的订阅收入和追加销售利润。
1. 如何看待标准化和定制化? 标准化和定制化的核心区别在于SaaS企业的人工成本是否会随着业务的规模的扩大而增加。
在项目定制中,客户在项目的实施交付中支付项目成本费用以及人工成本。每个项目的定制都不一样,大部分的系统功能和场景无法直接在其他客户身上反复被应用。当然,现阶段大部分互联网软件厂商会将过往一些产品项目进行模块化封装,用于二次开发和交付。
SaaS产品的标准化,能够实现产品驱动增长和规模化的复制,使得经常性收入MRR或者ARR更具持续性。服务用户越久,用户产生的价值越高。
对于较多数SaaS初创企业来讲,到底是要走定制化还是标准化, 答案永远都不是二选一。
存活是作为SaaS初创企业来讲首要解决的问题,我们可以在定制和标准化之间进行一些转化。 在服务于定制化的项目时,我们可以深入去了解客户的需求,通过深挖业务场景和行业问题,将一些核心的解决方案用于改进我们SaaS产品,这是一个行之有效的途径。
SaaS企业可以通过不断的探索定制项目的经验,将其嵌入到可以转化为产品逻辑和标准化的领域中来,这样的SaaS产品解决方案会更能经得起客户和市场的考验。这也是为什么越来越多垂直行业的成熟SaaS创始人大多数都是深耕于该行业多年。
2. 产业供应生态很重要 通常情况下, 客户在业务经营过程中会遇到各种各样的业务问题,他们需要解决的并不是其中某一个业务问题 。需要的是全面的解决方案,并且业务方案需要具备敏捷性和一定的弹性适应空间,那些大型/复杂且不够灵活的软件系统,在中小企业群体里会优先被抛弃。
行业SaaS产品旨在垂直的行业领域下专注的解决某些特定的业务问题,如上所说,客户想要的是全面解决方案而不仅是某个业务问题的解决方案。因此在一个企业里,会同时存在使用多个不同的SaaS用于解决日常业务问题。例如:企业客户采用ERP系统解决供应链进销存问题,CRM系统用于管理企业客户资料等业务问题。
多个不同SaaS使用,必然会引起“信息孤岛”的问题。打破“信息孤岛”,加速内部信息流的协同是当下中小企业客户选择SaaS产品最优先考虑的问题。
去中心化对于SaaS研发至关重要,这需要拥有生态系统思维的方式。
未来你的SaaS具备多少能够兼容上下游业务链的SaaS能力,决定着你SaaS产品能否获得长久的发展和未来。
国内SaaS如果想要构建生态化系统,就得学会抱团,各厂商之间需要做好业务边界和利益的分配。
目前在国内,阻碍 SaaS 应用发展的最大障碍是缺乏“生态系统思维”——大多数 SaaS 玩家,无论大小,都按照自己的规则按照自己的协议构建和扩展。这就失去了生态的意义。
#专栏作家# 大D ,微信公众号:ToB产品创新研习社,人人都是产品经理专栏作家。ToB SaaS产品专家。曾在国内多家上市企业担任互联网总监、信息技术部总监,带领团队多次从0到N进行产品商业化闭环,现专注于SaaS服务产品创业
本文原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议
给作者打赏,鼓励TA抓紧创作!
{{{path> 赞赏
-
软件零基础小白,学哪类插画最容易上手?
UI交互 2022-05-16拥有「想画啥就画啥」的能力之后,你会不会将自己的生活,像这样用画笔全部创作出来: 反正,周小馋不仅对自己的生活「下手」了,而且还将手伸向了属于公主们...拥有「想画啥就画啥」的能力之后,你会不会将自己的生活,像这样用画笔全部创作出来:
反正,周小馋不仅对自己的生活「下手」了,而且还将手伸向了属于公主们的「多元宇宙」:
而小馋老师的学员也紧跟着将自己的生活和想象创作了出来:
学员黑金
学员芒果
还有同学创作了自己的表情包!
如果你对于风格可爱的矢量插画感兴趣,那么不妨跟着小馋老师的 22 天直播课程,学会如何画出属于自己的插画宇宙:
原价499元, 上新限时特惠价 399 元!
(新课活动时间:5 月 12 号~20 号),名额有限,抓紧时间!
移动端报名扫描下方二维码,网页端报名右戳即可 ? https://pro.uisdc.com/detail/p_627921e5e4b01c509aae041b/6
跟着小馋一起变可爱的课程!
先教你如何让 Ai 跟手!
小馋老师的课一直都以零基础、好上手而著称——因为这门课最大的第一个优势,就是让你掌握「必要的工具」而非「事无巨细地学软件功能」。不用手绘版,只需鼠标,用几乎大半节课就能掌握的软件功能,带你开始创作的历程!
来自学员「鹅蛋呐」的回复
学员「穆紫薏」反馈
再告诉你插画「变可爱的潜规则」!
「可爱」是有迹可循的!线条怎么处理?色彩如何搭配?角色怎样塑造?布局如何掌控?装饰怎么搭配?小馋老师在过去 10 年内画遍世界的「可爱插画潜规则」都在课程里面,从灵感到绘制,从色彩到线条,从造型到装饰,都涵盖其中!
学员「K」反馈
最后,超多可爱的实战案例! 对!在通用的「潜规则」之下,各种题材的绘制还有一些独特的技巧!小馋老师会教你「可爱地」画出动物、植物、日常物品、人物、场景等各种案例,以及插画、头像、条漫、动态表情等不同形式的注意事项,让你也能放肆地画画!无限制地创作!
舒适的课程节奏! 小馋老师的直播课有着舒适的节奏,在带练演示+作业练习+反馈讲解的模式下,用 6 轮实战和练习 带你在 22 天时间内,掌握技巧,熟练方法,拥有创作的能力!
学员「Danch」反馈
原价499元, 上新限时特惠价 399 元!
(新课活动时间:5 月 12 号~20 号),名额有限,抓紧时间!
移动端报名扫描下方二维码,网页端报名右戳即可 ? https://pro.uisdc.com/detail/p_627921e5e4b01c509aae041b/6
画如其人的周小馋老师 将可爱与萌践行到底的周小馋老师,给人的感觉一直都是可可爱爱又温柔,这种由内而外的统一气质,为她的插画作品赢得了网友的热爱,以及大量的商业合作。
从湖南卫视到国博,从肯德基到味全,小馋老师将自己的萌系插画恰如其分地融入到商业产品中,在风格气质和商业价值之间做好了平衡,完全不显突兀,这一点上,就太值得学习了!
可爱即是正义!下面是更多小馋老师的作品:
上期学员作品
完成作业后,并上线了 微信 表情,不仅成就感十足,还能收到打赏赚取零花钱~
这次的优秀作业太多了……如果你也想像他们一样,就一起来学习吧!
原价499元, 上新限时特惠价 399 元!
(新课活动时间:5 月 12 号~20 号),名额有限,抓紧时间!
移动端报名扫描下方二维码,网页端报名右戳即可 ? https://pro.uisdc.com/detail/p_627921e5e4b01c509aae041b/6
-
A-SOUL陨落背后的反乌托邦叙事
设计动态 2022-05-16编辑导读:最近A-SOUL成员珈乐宣布“直播休眠”后,虚拟偶像背后真实打工人的困境被逐一曝光,引起了网友的关注。近年元宇宙的红火,让虚拟偶像行业也跟着水涨船高。本文作者对此进行了分析,希望对你有帮助。 自官方宣布A-SOUL成员珈乐“直播休眠”后,指向运营公司编辑导读:最近A-SOUL成员珈乐宣布“直播休眠”后,虚拟偶像背后真实打工人的困境被逐一曝光,引起了网友的关注。近年元宇宙的红火,让虚拟偶像行业也跟着水涨船高。本文作者对此进行了分析,希望对你有帮助。
自官方宣布A-SOUL成员珈乐“直播休眠”后,指向运营公司薪资待遇、强迫劳动等问题的舆情持续发酵。
5月14日,A-SOUL官方终于就近期争议发布说明,对外公布了中之人的薪资构成,表示与成员珈乐的幕后扮演者解约,无法按照原定计划举办520“珈乐休眠演唱会”,并否认存在“霸凌、压榨”情况。同时,还附上了一页解约合同文件。
不过,粉丝纷纷在评论区追问有关薪酬和工作时长的诸多细节,显然对于官方回应并不买账。
顶流A-SOUL一夜之间的陨落,让虚拟偶像的“永不塌房”成了一句笑话。
两年前,A-SOUL横空出世。“欢迎乐华新女团A-SOUL入职”的条幅高挂在大门口,乐华娱乐创始人杜华被五个二次元美少女的人形立牌簇拥着。立牌上写的“永不恋爱、保持身材、支持杜妈、准时打卡、按时营业”,每一句宣言都直指爱豆们的负面痛点,开启了以“永不塌房”为口号的虚拟偶像试验。
两年后,A-SOUL成员珈乐的“休眠”将二次元的美少女拉进了三次元,她穿着百元以下的连衣裙,戴着二三十元的首饰,忍受着超负荷工作给生理和心理带来的痛苦。在提前14个月解约时,官方选择用一场“珈乐休眠演唱会”的直播来结束这个女孩藏在“顶流”之下的职业生涯。
只不过,在这一次房塌后的碎瓦中,粉丝们看到的不是动辄过亿的片酬和德不配位的举止,而是自己的倒影。
01 A-SOUL筑起的“巴别塔” 二次元美少女,唱跳俱佳,深受喜爱。
对于不明就里的“圈外人”而言,符合以上三个特质的很可能是初音未来。以初音未来为代表的虚拟歌姬,得益于Vocaloid系列的语音合成程序,但碍于人工智能交流技术的发展现状,目前还很难实现与粉丝的实时互动。
于是,在技术发展的短板处,近几年VTuber们应运而生。
VTuber全称Virtual YouTuber,即虚拟主播。与虚拟歌姬不同,VTuber则由两部分组成:一部分是在网络之上进行互动的虚拟形象,被称为“皮套”;另一部分是在网络之下进行表演的真人演员,被称为“中之人”,使得两者串联起来的则是实时的动作捕捉技术。VTuber们吸引了大批的粉丝受众,并形成独特的兴趣社群,称为V圈。
2020年11月23日,A-SOUL_Official的官方号在B站上线了首支视频,宣布推出虚拟女团A-SOUL。作为字节跳动和乐华娱乐的联合企划,首支视频中仅仅靠几个剪影就向粉丝呈现了财大气粗的大厂所具备的技术水准。
但在坚决抵制“资本将V圈饭圈化”的呼声中,A-SOUL的开局并不顺利,负面评价劈头盖脸地砸向成员们。
不过,在A-SOUL正式成军一年后,评价实现了两级反转。不少势要与A-SOUL不共戴天的网友们都成为了“一个魂”(A-SOUL粉丝昵称)的主力军,A-SOUL的粉丝涵盖到御宅族、抽象嗨粉和饭圈玩家,各大“派系”放下成见和对立,在A-SOUL的直播间其乐融融。
而A-SOUL就成了巴别塔,直播间也成为网络亚文化的乌托邦。
这一转变,离不开女团五名成员的努力。
以最为出圈的“吃货担当”嘉然为例。在她的个人首秀上,虽然资本为她保证了远超同行的“基础设施”,但真正做出差异化的却是她的个人表现。在直播结束前,嘉然表演了“宅舞20连”,被粉丝们“一波封神”。
据此前“清朗指数”报道,A-SOUL成员中有3名是来自乐华娱乐的练习生。远超素人的实力让本怀有“仇视滤镜”的网友们放下成见、纷纷投诚,真香定律再次上演。
同时,这一转变更离不开乐华娱乐的偶像培养经验,即紧紧抓住了偶像工业最核心的共性问题,集聚了突破圈层的气力。 无论是虚拟还是现实,偶像的培养都有一条相同的底层逻辑,即为粉丝提供足够的情绪价值。
在偶像经济的逻辑里,偶像提供的产品是情感劳动,从唱跳实力到个人形象,究根溯源都是经过加工、经过整饰的一种商品化的情感服务。偶像作为粉丝想象中的完美符号,唱、跳、rap和人设都不过是增加这个符号的内涵,让他们变得立体。某种程度上说,嘉然的“一战封神”也是偶像工业中的重要安排。
然而,在这个过程中,将所有对偶像近乎苛责的要求都变得合理化。不能谈恋爱、保持身材,从始至终保持同一的人设,都具有了合理性。而虚拟偶像在消弭了真人的属性后,中之人的人格进一步“异化”,甚至24小时营业也成为了题中之义。
吊诡的是,技术高于人而存在,却要人来赋予技术魅力。这种矛盾的产业逻辑,是一开始就蛰伏在虚拟偶像中的危机。
02 一戳就破的粉色泡泡 相较于现实偶像,虚拟偶像并不是一门好做的生意。
每一个虚拟偶像只是一个外显的形象,背后有一整个团队。在这个团队中,前端包括人工智能、实时动捕的技术支持,中期有中之人的训练和培养、皮套的人设打造,后端还要有流量、渠道的运营。相较于现实偶像,虚拟偶像对于资源和资本的需求只多不少。
根据果壳的报道,目前乐华娱乐已经淡出了A-SOUL的运营,交由字节跳动旗下游戏公司朝夕光年代理。但就乐华娱乐的招股书来看,A-SOUL帮助乐华在泛娱乐业务中获得了79.6%的增长率,增收超过1600万元。
与台前呈现出的行业地位不相符的是,在幕后A-SOUL的商业价值其实十分受限,他们无法平移偶像工业的商业模式,参与到收益更高的影视综领域。而商业代言所能选择的领域也很窄,这一方面的“前车之鉴”当属国风虚拟偶像翎Ling,她推广口红产品时评价“滋润不干”,被网友直指虚拟的呈现效果没有任何说服力。最后,团队只能删去这一推广。
换句话说,虚拟偶像作为商业代言,在受众中有多少接受度还是要打个问号的。这也就决定了,A-SOUL在目前的环境下,盈利模式难逃直播的基本盘。但完全仰仗直播的模式,就对虚拟偶像的唱跳实力和人格魅力提出了更高的要求。
这一要求就完全转嫁到了中之人身上,她们的努力直接决定了虚拟偶像的差异度以及粉丝的忠诚度。
与首播一战成名的嘉然不同,这次处于舆论中心的珈乐直播首站在惨淡收场。“灾难”般的首秀后,A-SOUL官方紧急发起了为期25天的“珈乐直播训练计划”。为保障珈乐口碑的“封闭训练”,个中滋味恐怕只有中之人能够体会。直到这一次舆论风波中,珈乐的苦楚才浮出水面。
在珈乐“开盒”后的网易云账号中,粉丝们才拼凑出中之人的现实生活。她们凌晨3点被叫醒训练,拿不到相匹配的薪酬。在此前的爆料中,她们拿着7k或1w1的底薪,粉丝送一个138元的舰长,她们仅仅只能拿到0.69元提成。而A-SOUL背后的字节跳动和乐华娱乐,顺势成为了粉丝口中的吸血资本家。
事实上,在整个偶像工业背后始终没有明确、公平的分配机制。即使是真人偶像团体也要面对权责不等的情况,公司权利多而义务少,艺人权利少而义务多已是常态。
对于偶像而言,公司的剥削与控制是跨越次元壁的存在。只不过,在虚拟偶像的背后,中之人即便成为顶流,也很难有议价权。
她们本身依附于虚拟形象而存在,虚拟偶像的“休眠”也意味着他们职业生涯的终结,“从大厂毕业”,少了真人偶像另谋出路的退路。真人偶像尚且面对的是娱乐圈,粉丝与偶像是实打实的绑定在一起,而虚拟偶像的中之人面对的则是实打实的职场,在舆论中破釜沉舟,两败俱伤。
“珈乐休眠事件”之后,对于粉丝的情感价值带了超高的损耗。对于中之人的同情、对于背后公司的愤怒,对于A-SOUL直播的影响恐怕是致命的。
戳破了这个虚拟偶像的“粉色泡泡”以后,留给双方的只有一夕之间的信任崩塌,没有赢家。
03 跨次元的反乌托邦叙事 在珈乐宣布“休眠”以后,之前嘉然被一篇粉丝“小作文”整破防的直播回顾在社交媒体上盛传。
在那篇小作文中,讲述了一个在工厂与出租屋两点一线的生活中泅渡的打工人。他早出晚归,吃着味同嚼蜡的饭菜,工作后身心俱疲,因为前几天上头给嘉然冲了30 SC(superchat,即醒目留言,B站付费留言功能),于是晚饭的鸡胸肉只能少切了一半。
在这位粉丝索然无味的生活中,嘉然的直播成了一种精神寄托。
嘉然动情念着粉丝真情实感的小作文,语速放慢,竟忍不住停顿、哽咽,但因为Vtuber情感模块没有哭的功能,中之人只能转过身啜泣。再面对屏幕时,又是一如既往的笑脸,她的职责就只有笑。
在中之人的不公待遇曝光后,这个直播视频在粉丝眼中成为了绝佳的预言。
在粉丝眼中,这些虚拟偶像是他们理想生活的投射,摆脱了柴米油盐和繁琐的生活。在一切曝光之前,大家都忘了中之人的存在,忘了对于中之人的“人格异化”。当A-SOUL塌房之后,对于背后“黑心”资本的愤怒中实际上掺杂了三次元的无奈和自责。
当三次元有血有肉的“中之人”高于二次元的“皮套”而存在时,完成了一场跨次元的“反乌托邦”叙事。
打工人的窘境、职场压榨、劳资关系这些现实生活中的问题,压在一个流不出电子眼泪的虚拟形象身上,冲突感和戏剧性让负面效应成倍放大。
在珈乐“休眠事件”曝光后,A-SOUL官方的辟谣姗姗来迟,表示对于薪资的爆料均为假,而真实的薪资问题“涉及个人隐私无法具体透露”。在舆论压力下,今天官方对外公布了幕后演员的收入构成为“固定收入+奖金+直播总流水的10%”。
但是粉丝们并不买账,一切证明材料都不具有说服力。因为粉丝们或多或少都对不公和无奈的职场感同身受。
在这场投射到打工人的舆论漩涡中,A-SOUL再也回不到此前的巅峰,甚至还可能会面临集体的“休眠”。不过,只要市场价值还在,虚拟偶像就绝不会休眠,未来可能还会有B-SOUL、C-SOUL。
但经此一役,粉丝们或许会永远追问,在虚拟的“皮套”之外,现实的“中之人”是不是少切了一半鸡胸肉。
作者:朋朋,编辑:范志辉,公众号:音乐先声
本文由 @音乐先声 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议
给作者打赏,鼓励TA抓紧创作!
{{{path> 赞赏
-
软件零基础小白,学哪类插画最容易上手?
UI交互 2022-05-16拥有「想画啥就画啥」的能力之后,你会不会将自己的生活,像这样用画笔全部创作出来: 反正,周小馋不仅对自己的生活「下手」了,而且还将手伸向了属于公主们...拥有「想画啥就画啥」的能力之后,你会不会将自己的生活,像这样用画笔全部创作出来:
反正,周小馋不仅对自己的生活「下手」了,而且还将手伸向了属于公主们的「多元宇宙」:
而小馋老师的学员也紧跟着将自己的生活和想象创作了出来:
学员黑金
学员芒果
还有同学创作了自己的表情包!
如果你对于风格可爱的矢量插画感兴趣,那么不妨跟着小馋老师的 22 天直播课程,学会如何画出属于自己的插画宇宙:
原价499元, 上新限时特惠价 399 元!
(新课活动时间:5 月 12 号~20 号),名额有限,抓紧时间!
移动端报名扫描下方二维码,网页端报名右戳即可 ? https://pro.uisdc.com/detail/p_627921e5e4b01c509aae041b/6
跟着小馋一起变可爱的课程!
先教你如何让 Ai 跟手!
小馋老师的课一直都以零基础、好上手而著称——因为这门课最大的第一个优势,就是让你掌握「必要的工具」而非「事无巨细地学软件功能」。不用手绘版,只需鼠标,用几乎大半节课就能掌握的软件功能,带你开始创作的历程!
来自学员「鹅蛋呐」的回复
学员「穆紫薏」反馈
再告诉你插画「变可爱的潜规则」!
「可爱」是有迹可循的!线条怎么处理?色彩如何搭配?角色怎样塑造?布局如何掌控?装饰怎么搭配?小馋老师在过去 10 年内画遍世界的「可爱插画潜规则」都在课程里面,从灵感到绘制,从色彩到线条,从造型到装饰,都涵盖其中!
学员「K」反馈
最后,超多可爱的实战案例! 对!在通用的「潜规则」之下,各种题材的绘制还有一些独特的技巧!小馋老师会教你「可爱地」画出动物、植物、日常物品、人物、场景等各种案例,以及插画、头像、条漫、动态表情等不同形式的注意事项,让你也能放肆地画画!无限制地创作!
舒适的课程节奏! 小馋老师的直播课有着舒适的节奏,在带练演示+作业练习+反馈讲解的模式下,用 6 轮实战和练习 带你在 22 天时间内,掌握技巧,熟练方法,拥有创作的能力!
学员「Danch」反馈
原价499元, 上新限时特惠价 399 元!
(新课活动时间:5 月 12 号~20 号),名额有限,抓紧时间!
移动端报名扫描下方二维码,网页端报名右戳即可 ? https://pro.uisdc.com/detail/p_627921e5e4b01c509aae041b/6
画如其人的周小馋老师 将可爱与萌践行到底的周小馋老师,给人的感觉一直都是可可爱爱又温柔,这种由内而外的统一气质,为她的插画作品赢得了网友的热爱,以及大量的商业合作。
从湖南卫视到国博,从肯德基到味全,小馋老师将自己的萌系插画恰如其分地融入到商业产品中,在风格气质和商业价值之间做好了平衡,完全不显突兀,这一点上,就太值得学习了!
可爱即是正义!下面是更多小馋老师的作品:
上期学员作品
完成作业后,并上线了 微信 表情,不仅成就感十足,还能收到打赏赚取零花钱~
这次的优秀作业太多了……如果你也想像他们一样,就一起来学习吧!
原价499元, 上新限时特惠价 399 元!
(新课活动时间:5 月 12 号~20 号),名额有限,抓紧时间!
移动端报名扫描下方二维码,网页端报名右戳即可 ? https://pro.uisdc.com/detail/p_627921e5e4b01c509aae041b/6
-
头像如何画才能简单又传神?资深插画师6大步骤经验全分享!
UI交互 2022-05-16关于我:优设大课堂金牌讲师,高级原画师、插画师。多次参与国内外知名游戏项目; 擅长欧美 CG、Q 版卡通等多种绘画风格。 想看我更多作品可以关注我的小红...关于我:优设大课堂金牌讲师,高级原画师、插画师。多次参与国内外知名游戏项目; 擅长欧美 CG、Q 版卡通等多种绘画风格。
想看我更多作品可以关注我的小红书@wuli_石头,微博 @wuli_石头 。
之前在小红书上分享了一套按《搞笑一家人》里面的罗文姬女士的形象绘制的人物的表情包,收到了很多朋友的转发点赞,看来大家都挺喜欢的这种风格的人物绘画。
所以决定出一篇文章,给大家分享一下我绘制 人物头像 的 6 大步骤,同时会对相关的知识点和技巧做细致的讲解,希望对大家有所帮助。
对人物外形的抽象概括 传统的人物造型按头部、颈部、肩部、躯干的顺序依次构建,然后再根据透视做进一步刻画。这样画人物会与原照片非常的“像”,但同时也会没有特点,缺少趣味和神韵。
我根据自己长期的绘画经验,总结出一套自己的人物造型方法,概括来说就是大胆抽象,夸张对比。
大胆抽象,首先需要我们对绘画对象有一个细致的观察。要善于利用自己的直觉,抓住人物给我们的第一印象或者印象最深刻的点。发掘其所带有的一种情绪或者“势能”,然后用简单的形状概括出来。
我们看下面 2 张示例,2 张图片虽然都是同一个人物,但是整体神态是不同的。
上图中人物是站立的状态,我们可以观察人物头部与躯干的相对位置,是一个比较舒展挺拔的状态,有往上延展的趋势。结合人物色块在整个图形中所占比例(人物色块与背景色块的区别),我们可以选择用一个直立细长的三角形来概括人物整体外轮廓。
在第二张图中,我们可以看到人物的头部与躯干重叠,缩着脖子耸肩。这样给人的整体感觉比较内收,像是被压缩了。所以我选择用一个四分之一圆的形式概括整体的外形。
确定好主体外形轮廓之后,我们在草稿起形的时候就非常快了。同时我们可以将初步外形做进一步的夸张:将尖锐三角形的进一步拉长,四分之一圆进一步压扁,让形状所代表的气质更加明显。
再多给大家展示几个人物轮廓的概括步骤,帮助大家理解:
虽然图片上人物头部的轮廓是圆的,但是我选择变方为圆,将人物的脸部连同脖子夸张成一个长条形,肩部部分则横向展开为一个梯形。这样的宽窄对比就会让形状更有节奏感,显得有趣。
直接按照图片绘制的话,整体外轮廓会呈现方形, 比较呆板。我们转换一下思路,当人物躺倒的时候,在二维平面上原来的比例都会被压缩,我们可以一个选择扁长的形状,更符合我们直觉中被压缩的感觉。
小结
绘画的第一步不是拿起画笔就照着图片画,而是要带着思考去观察,用直觉感受绘画对象整体“势”的特征,然后用最能体现这种特征的几何形状去概括。我们在这一步确定的几何形状会主导后面人物造型的方向和特点,影响到成图的整体状态。
可能有些同学会觉得,这样夸张的概括有些失真了。但其实这就是夸张的的优势和魅力,只要做到足够夸张,那么就更比照片更能体现人物状态的精髓,也更加生动传神。
头身比例及分形 在确定好整体的人物外形后,下一步就是划分头身比例并分形。
首先需要说明的是,头身比例的划分没有绝对值,看个人风格和习惯。确定好头身比之后,我们就可以进一步划分出第二个几何形。
示例 ①
第一步已经将人物外形概括为一个细长的三角形。确定好头身比之后,根据人物身体色块在图片中的占据的形状,第二个几何形就确定为一个半圆形。
在半圆形之上就是我们头部的位置。我并没有严格依照头骨形状来画,而是按照片上人物皮肤的面积,将其概括成一个椭圆形。然后用线条找出头发的位置,草稿部分就基本完成了。
示例 ②
第一步我们已经将人物外形概括为压扁的四分之一圆。这里我没有将脸部概括为一个椭圆,而是一个倒三角。原因是,仔细观察人物我们会发现,她的眼睛是向上看的,结合整体看有一个斜向上的趋势。而倒三角形就能展现出这样的一种趋势,如果话概括成纯椭圆的话就没有什么特点了。
大家可以再看看下面几张图,多感受一下分形的思路:
第一步我们将整体概括为一个长方形加一个梯形,进一步分形时,我将左右头发概括成两个圆形,头顶的发量压缩,这样在外轮廓上就有一个明确的变化,更加有趣。
我们已经将整体概括了一个扁平的形状。进一步分形时,按照图片中头部皮肤色块呈现的形状,在内部分出一个稍微扁一点的半圆。再简单概括一下头发和手部的形状。
小结
在确定好主体的几何形状后,第二步就是确定头身比例,然后做进一步的大方向分型。在对头部或者躯干进行分型时,不一定要按照很精准的人体比例去理解,但是要对色块、元素及他们之间的关系有一个准确的把握。
基础透视原理与点对点的处理 在前两步的分形阶段,我们用了非常感性的方法对于人物造型进行抽象概括。但想画成一张好看的图,光靠感性和直觉是完全不够的。
在基本的分形确定好之后,我们的思维要转到理性的一面,运用基础的透视理论和点对点知识,帮助我们确定正确的五官位置和头身关系。
① 纵向中心线
人物的分形草稿已经完成,这个时候我们心中需要有几条线:脸部的中心线、脖子的中心线、躯干的中心线。这些都是纵向的线条,分别对应我们的头颅,颈部和身体。只有这三条纵线在垂直方向上是贯通的,我们画出的人才是形体才是正的,不会出现出现形态扭曲。
② 横向位置线
纵向线条标好之后,我们就能在此基础上进行横向线条的划分。
确定眼睛、鼻子、嘴巴的大概位置和互相之间的距离。这是要注意由于透视变化,五官之间距离的变化。透视不对,五官看起来就很怪异。
注意线条的倾斜角度和方向的问题。确定五官位置的时候,要仔细观察人物实际状态,线条呈现出对于倾斜的趋势。
横向的线条确定好之后,我们就可以在标记好的位置上确定五官的位置了。
人体转向角度的不同,中心线的对应位置也会发生变化,眼睛这种原本两侧对称的点位置也会发生偏移。这个时候就要运用「点对点」的方式,以纵向中心线为准,让身体左右两侧的元素保持在同一水平线,并且在透视上保持距离相等。
表情绘制与五官分形 仔细观察五官线条的走向,是塑造人物表情非常重要的点。准确的线条走向让五官的表现力更强,情绪传达更加饱满。
上图中,人物表情是嫌弃、不耐烦。仔细观察五官的线条走向:嘴角下坠,眉毛往中间聚拢,眼睛是向右看。在画草图的时候,就可以把这几个点抓住,用带有方向性的线条标出来,情绪的基本调性就被确定下来了。
这张图中,人物双手捂住耳朵,眼睛紧闭,眉毛皱在一起,整体非常抗拒的姿态。在草图中,我们要用线条表达出这些趋势,且这些线条都是往面部中心收缩。
在基础的线条方向确定好之后,就可以进一步用简单的形状,对五官的进行分形。我这里还对人物的鼻子做了夸张的处理,做成了一个尖锐的三角形,以进一步凸显人物激烈的情绪状态。
小结
不同走向的五官线条,会表达出不一样的情感。在保证五官的整体位置是正确的前提下,暗示出这些重要的方向向性线条,就能为五官的刻画定向正确的基调,塑造最终的表情时就会更加准确。
五官具体刻画与脸部轮廓 确定了五官线条的大体走向,接下来就是五官的具体刻画了。这里给大家分享一个我长期以来使用的画五官的方法:
直接眉毛连鼻子,再连人中和嘴巴。即除了眼睛之外,眉毛、鼻子嘴巴都是一根线。
这样做的好处就是:确定好单边眉毛的位置,我们就通过「点对点」的方法,确定另一侧眉毛的位置,然后沿面部中线,画出鼻子、人中,嘴巴的形状,五官刻画速度非常快。
第四步的时候,我们已经确定好五官线条的大致走向,这里就直接草稿的基础上进一步完善,勾勒出五官的具体形状。此外也可以加入一些睫毛、皱纹等个性化的特色。
另外再说一下脸型设计的问题。第一步进行整体外形概括时,用的是一个简单的几何形状。但是在具体刻画时,我们也要更具人物实际状态来概括。
比如上图中,人物年纪比较大,脸部的肌肉松弛下垂,那么我们在塑造脸部轮廓时,就需要把脸部的下半部分处理的更宽阔圆润一些,形成一个半圆,与左侧的直线和头部较窄的圆弧形成对比,这样形状轮廓的节奏感也更好。
头发的绘制思路 头部、躯干、五官都已经讲完了,接下来为大家讲解一下头发绘制的思路。画头发要注意到 2 方面的问题:透视和外形轮廓。
透视方面,头部转向的不同,头发呈现的状态不一样。照片中人物的脸是向右转的,那么对于左边的头发整体呈现的就更多,右边的呈现的较少且头发会被遮挡。
外轮廓是头部造型的重点,一定要有识别度。如果要表现卷发,那我们就用饱满的半圆形弧线去概括,比软绵绵的弧线来说表现力要强很多。
另外就利用分组来归纳发型的表现。先根据照片,对头发进行分块的概括,块面的大小要有对比变化,这样才能体现蓬松饱满的感觉。
总结 经过以上 6 步,人物头像的线稿就完成了。整个人物头像的绘制思路非常清晰,技巧也并不复杂,在日常联系或者创作中多多运用,肯定会对大家的人物造型有帮助。
今天的分享就是这些,喜欢的话可以点赞收藏,后续我会继续为大家分享更多欧美风格人物插画的知识技巧。同时也欢迎大家关注我的小红书@wuli_石头,上面有我的最新作品和日常创作思路分享。
零基础也没事!大神教你 5 步画出好看的扁平风人物插画 大家好我是花生。
阅读文章 >
-
大厂都在用! 万字干货带你读懂并应用 Design Token
UI交互 2022-05-16前言 随着近几年 Figma 等一系列在线设计工具的崛起,相信设计师对设计系统的都有了更深的了解。其实设计系统的建设是一个非常庞大而复杂的工...前言 随着近几年 Figma 等一系列在线设计工具的崛起,相信 设计师 对设计系统的都有了更深的了解。其实设计系统的建设是一个非常庞大而复杂的工程。我们通过各种设计规范等对产研流程提效,但还是会经常遇到一些棘手的问题。
1. 开发用的颜色/字体样式/投影等与设计稿存在差距;
2. 颜色选择困难。不同设计师之间在用各种层级的文本颜色时,到底用 Gray1 还是用 Gray2,不知道该选哪一种;
3. SaaS 类的产品需要根据客户的品牌色调整产品的主色,设计和开发都面临巨大的工作量;
4. 设计稿的更新无法及时在开发者的代码中体现,一是因为开发首先需要拿到新的设计稿,再根据标注甚至肉眼判断区别后更新代码;另一方面,设计稿中看似简单的改动可能导致较大范围的代码改动,例如字体大小等;
为了解决和优化上述的问题,Design Token 应运而生。它可以高效地解决产品设计和开发过程中的细节和风格一致性的问题,提高产研团队设计质量和协作效率。
什么是 Design Token “Token”原本的意思是“令牌,指令”,与 Design 连在⼀起指“设计变量”。在工程逻辑中用于用户身份与服务器端进行验证,而在设计体系中,Design Token 则可以简单理解为封装的视觉样式参数。它通过规定样式参数,并通过一套符合设计师、工程师理解的统一的命名规则,为这些样式参数的定义名称。
腾讯出品的 Design Token 应用指南:设计篇 在线设计、研发协作工具和组件概念的普世化,让设计、研发效率大大提升;数字产品发展到今天,数字产品对迭代速度、个性化品质要求也越来越强。
阅读文章 >
原子设计理论提出者 Brad Frost (布拉德 · 弗罗斯特)在《Atomic Design》中提到:原子设计理论从原子(Atoms)、分子(Molecules)、组织(Organisms)、模板(Templates)、页面(Pages)、标准流程(Patterns)再到更完善的 设计体系 (Design Systems),这一切都是为了产品设计、研发效率和一致性提供帮助。同时,它们也是传达设计原则、构成产品独特气质的基石。Design Token 就是原子级的最基础的构成要素。
根据北美顶级 SaaS 企业的开源设计系统 Saleforce Lightning Design System 的解释,Design Token 是设计系统中的可视化原子,是设计属性的命名实体,使用它们代替具体编码值(如颜色的 16 进制、间距的像素值等),以便于维护一套可扩展且一致性的设计系统。
可以说,Token 就是最底层的原子,本质上就是找到了组件、属性和代码之间的对应关系,统一了设计样式和前端语言,使组件和设计系统可以被快速管理。
Design Token 的优势 基于上述关于 Design Token 的基础解释,可以将 Design Token 的好处可总结为:
设计语义-更易理解 设计方案-更加一致 主题皮肤-一键替换 设计变更-高效维护 设计成果-精准还原
1. 设计语义-更易理解
每一个组件的基础元素都可以用 Token 进行语义化的命名,帮助设计师和开发建立统一的描述语言。例如#91d5ff 这个色值按照传统的设计规范命名的方式,它可能叫 Blue-3。在实际应用的时候,设计师和开发并不能直接通过 Blue-3 来理解这个颜色到底是用在什么具体场景当中。而当我们通过 Token 语义的方式让它达到组件级别的精度时,它会叫:color-primary-brand-light-disable,不同的设计师和开发就能迅速的理解这个颜色应用在什么具体场景当中。
2. 设计方案-更加一致
当使用组件库实际运用到项目当中时,我们有时候会有不同设计师合作产出一个项目的情况。对于一些不熟悉设计规范或新加入的设计师来说,就会困惑,当使用二级文本色的时候,究竟是用 Gray2、还是 Gray3、Gray4。而这个时候,我们定义一个 Token 名称叫:color-text-secondary,这个 Token 嵌套的颜色是 :Gray3,这样我们设计师在使用的时候,只需要选择 color-text-secondary 这个 Token 变量即可,能选择的颜色就是唯一的,这就能在一定程度上确保不同设计师在同一个场景当中的设计稿保持高度一致性。
3. 主题皮肤-一键替换
主题皮肤的替换可以用在两个维度,一是浅色模式和暗色模式的替换,二是不同品牌色之间的替换。我们可以将不同主题的同一个场景下的颜色使用同一个 Token 命名,例如变量名都叫:color-primary-brand-light-default,蓝色皮肤下对应的值为:#165DFF;红色皮肤对应的值为:#F53F3F。然后通过插件面板的一键操作即可完美切换。同时这种切换模式也可以带入 tokn.josn 代码(后面会具体讲如何输出 json 文件交付开发)中,与开发进行同步。
4. 设计变更 高效维护
还是上面的例子,当我们的二级文字颜色 color-text-secondary 需要进行变更,从 Gray-600 变为 Gray-500。如果没有“color-text-secondary”这个 Token,我们可能需要手动去选中所有用了 Gray-600 的二级文字的图层,一个一个地将它们改为 Gray-500,而当我们有了“color-text-secondary”这么一个 Token 时,我们只需要将 color-text-secondary 的值一键从 Gray-600 变为 Gray-500 便可以完成产品全局的颜色变更。进而设计师可以将 token.json 代码(后面会具体讲如何输出 json 文件交付开发)同步更新给开发 ,开发直接一键替换,线上的界面就能半自动地迅速应用到变更后的色值。
5. 设计成果-精准还原
设计稿能否被开发精准还原,这几乎是每一个设计师在实际项目中会遇到的问题。我们在进行设计验收的时候,即便花了很多时间进行走查,在表格上列举了很多细节问题,但最终的还原效果并不能得到保障。甚至在一些时候会感觉做验收比重新做一遍设计稿还要费劲「emo」,有的时候甚至会直接按 F12 在网页上改代码给开发提示「狗头」。
例如,在常规不使用 Token 的情况下,开发同学使用的是硬代码的模式,代码编辑器无法判断这个颜色是否正确,如果开发不小心输错了一位数,就很可能导致线上运行时候的不一致。而使用了 Token 之后,开发只需要输入这个场景的 Token 名称的前缀,代码编辑器便会自动化地提示有哪几个颜色供选择就可以了,如果不正确,代码编辑器还会给出报错提示,开发同学可以在写代码的过程中完成基础的检验工作,这样一来,设计师的成果便能够一定程度上的精准还原,设计师验收的工作量也会小很多。
在设计系统中应用 Design Token 上面讲了这么多理论,接下来开始实战,准备好~
1. 提炼 Token 组成元素
Design Token 是构成设计语言的基本构建块,是设计系统中最核心、最基础的影响视觉风格的元素。根据 Figma Tokens 插件默认提供的面板中,可以将分别以下组成元素:
Color 颜色、Shadow 投影、Typography 字体样式、Size 尺寸、Space 间距、Border Radius 描边圆角、Border Width 描边宽度、Opacity 透明度等
2. 定义 Token 命名规则
关于 Token 的命名规则,不同的团队有不同的定义方式,但其本质都是为了提高产品的一致性和工作效率。因此在对 Token 命名规则进行分类整理时,设计需要与开发同事达成一致,以确保能够更好地落地。
在制定自己产品的 Token 命名规则前,带大家看一下大厂的 Design Token 都是怎么命名的
腾讯文档 Token 变量表: https://mp.weixin.qq.com/s/sRRPlsxaUZj7220PLoFiRw
腾讯 TDesign 开源设计系统 Token: https://github.com/Tencent/tdesign-common/blob/develop/style/web/theme/_light.less
:root, :root[theme-mode="light"] { // 文字 & 图标 颜色 --td-font-white-1: rgba(255, 255, 255, 100%); --td-font-white-2: rgba(255, 255, 255, 55%); --td-font-white-3: rgba(255, 255, 255, 35%); --td-font-white-4: rgba(255, 255, 255, 22%); --td-font-gray-1: rgba(0, 0, 0, 90%); --td-font-gray-2: rgba(0, 0, 0, 60%); --td-font-gray-3: rgba(0, 0, 0, 40%); --td-font-gray-4: rgba(0, 0, 0, 26%); // 基础颜色 --td-brand-color: var(--td-brand-color-8); // 色彩-品牌-可操作 --td-warning-color: var(--td-warning-color-5); // 色彩-功能-警告 --td-error-color: var(--td-error-color-6); // 色彩-功能-失败 --td-success-color: var(--td-success-color-5); // 色彩-功能-成功 // 基础颜色的扩展 用于 hover / 聚焦 / 禁用 / 点击 等状态 --td-brand-color-hover: var(--td-brand-color-7); // hover 态 --td-brand-color-focus: var(--td-brand-color-2); // focus 态,包括鼠标和键盘 --td-brand-color-active: var(--td-brand-color-9); // 点击态 --td-brand-color-disabled: var(--td-brand-color-3); // 禁用态 --td-brand-color-light: var(--td-brand-color-1); // 浅色的选中态 // 警告色扩展 --td-warning-color-hover: var(--td-warning-color-4); --td-warning-color-focus: var(--td-warning-color-2); --td-warning-color-active: var(--td-warning-color-6); --td-warning-color-disabled: var(--td-warning-color-3); --td-warning-color-light: var(--td-warning-color-1); // 失败/错误色扩展 --td-error-color-hover: var(--td-error-color-5); --td-error-color-focus: var(--td-error-color-2); --td-error-color-active: var(--td-error-color-7); --td-error-color-disabled: var(--td-error-color-3); --td-error-color-light: var(--td-error-color-1); // 成功色扩展 --td-success-color-hover: var(--td-success-color-4); --td-success-color-focus: var(--td-success-color-2); --td-success-color-active: var(--td-success-color-6); --td-success-color-disabled: var(--td-success-color-3); --td-success-color-light: var(--td-success-color-1); // 遮罩 --td-mask-active: rgba(0, 0, 0, 60%); // 遮罩-弹出 --td-mask-disabled: rgba(255, 255, 255, 60%); // 遮罩-禁用 // 文本颜色 --td-text-color-primary: var(--td-font-gray-1); // 色彩-文字-主要 --td-text-color-secondary: var(--td-font-gray-2); // 色彩-文字-次要 --td-text-color-placeholder: var(--td-font-gray-3); // 色彩-文字-占位符/说明 --td-text-color-disabled: var(--td-font-gray-4); // 色彩-文字-禁用 --td-text-color-anti: #fff; // 色彩-文字-反色 --td-text-color-brand: var(--td-brand-color-8); // 色彩-文字-品牌 --td-text-color-link: var(--td-brand-color-8); // 色彩-文字-链接 // 分割线 --td-border-level-1-color: var(--td-gray-color-3); --td-component-stroke: var(--td-gray-color-3); // 边框 --td-border-level-2-color: var(--td-gray-color-4); --td-component-border: var(--td-gray-color-4); // 内投影 用于弹窗类组件(气泡确认框 / 全局提示 / 消息通知)的内描边 --td-shadow-inset-top: inset 0 .5px 0 #dcdcdc; --td-shadow-inset-right: inset .5px 0 0 #dcdcdc; --td-shadow-inset-bottom: inset 0 -.5px 0 #dcdcdc; --td-shadow-inset-left: inset -.5px 0 0 #dcdcdc; // table 特定阴影 --td-table-shadow-color: rgba(0, 0, 0, 8%); // 滚动条颜色 --td-scrollbar-color: rgba(0, 0, 0, 10%); }{{{pre> Element-Plus: https://element-plus.org/zh-CN/
--el-bg-color: #ffffff; --el-bg-color-page: #ffffff; --el-bg-color-overlay: #ffffff; --el-text-color-primary: #303133; --el-text-color-regular: #606266; --el-text-color-secondary: #909399; --el-text-color-placeholder: #a8abb2; --el-text-color-disabled: #c0c4cc; --el-border-color: #dcdfe6; --el-border-color-light: #e4e7ed; --el-border-color-lighter: #ebeef5; --el-border-color-extra-light: #f2f6fc; --el-border-color-dark: #d4d7de; --el-border-color-darker: #cdd0d6;{{{pre> Ant Design: https://ant.design/components/overview-cn/
html { --ant-primary-color: #1890ff; --ant-primary-color-hover: #40a9ff; --ant-primary-color-active: #096dd9; --ant-primary-color-outline: rgba(24, 144, 255, .2); --ant-primary-1: #e6f7ff; --ant-primary-2: #bae7ff; --ant-primary-3: #91d5ff; --ant-primary-4: #69c0ff; --ant-primary-5: #40a9ff; --ant-primary-6: #1890ff; --ant-primary-7: #096dd9; --ant-primary-color-deprecated-pure: ; --ant-primary-color-deprecated-l-35: #cbe6ff; --ant-primary-color-deprecated-l-20: #7ec1ff; --ant-primary-color-deprecated-t-20: #46a6ff; --ant-primary-color-deprecated-t-50: #8cc8ff; --ant-primary-color-deprecated-f-12: rgba(24, 144, 255, .12); --ant-primary-color-active-deprecated-f-30: rgba(230, 247, 255, .3); --ant-primary-color-active-deprecated-d-02: #dcf4ff;{{{pre> 以上截取的部分 Token 基本是在 Github 上开源社区能找到相关的代码。如果我们想要找一个非开源的设计系统的 Token 怎么找呢?
这里以飞书为例,个人觉得飞书整体的配色非常舒适,想要研究一下其中的 Token 是怎么制定的。
首先打开飞书网页,按 F12,选中任意元素,便可在“样式”中找到飞书产品所有的 Token 是如何命名,以及可以分析研究其中的色彩运用规律。
飞书 Token: www.feishu.cn
--bg-base: var(--N100); --bg-base-raw: var(--N100-raw); --bg-body: var(--N00); --bg-body-raw: var(--N00-raw); --bg-body-overlay: var(--N50); --bg-body-overlay-raw: var(--N50-raw); --bg-content-base: #f8f9fa; --bg-content-base-raw: 248,249,250; --bg-filler: var(--N200); --bg-filler-raw: var(--N200-raw); --bg-float: var(--N00); --bg-float-raw: var(--N00-raw); --bg-float-base: var(--N100); --bg-float-base-raw: var(--N100-raw); --bg-float-overlay: var(--N50); --bg-float-overlay-raw: var(--N50-raw); --bg-float-push: rgba(var(--N00-raw),0.8); --bg-mask: rgba(0,0,0,0.4); --bg-mask-raw: 0,0,0;{{{pre> Token 命名规则总结
通过上面的大厂 Token 参考我们可以分析出一些普适性的规则:
1. 单词之间用“-”分隔;
2. Token 前缀可自定义添加自己产品的简称,例如:“–el-xx”、“–ant-xx”、“–td-xx”;
3. Token 可以套 Token,例如:–td-brand-color-hover: var(–td-brand-color-7);
3. 整理 Design Token 资产表
分析完各个大厂的 Token 规则之后,接下来正式开始对自己产品的 Design Token 开始建设,首先便是整理一份 Design Token 资产表,可以用文档、表格等形式整理。
这里以 TDesign 为例,需要包含 3 列:Token、Value、Describe。这份 Token 资产表整理好之后,可以在设计团队内部进行评审,通过之后再与开发进行对齐。
来源: https://tdesign.tencent.com/design/color
通过工具创建 Token 并联动设计文件 以上主要讲的是在思维层面 Design Token 是怎么推导的,接下来重点讲一下怎么借助一些实用的工具将 Design Token 实现自动/半自动化的落地。
这里主要推荐的工具是 Figma Tokens 插件,它是一款基于 Figma 的插件,相对于 Figma 右侧面板原生自带的样式外,能够实现多层级的 Token 管理,同时插件内容能够与 Figma 设计文件实现实时联动。
1. 安装并运行插件
插件安装地址: https://www.figma.com/community/plugin/843461159747178978/Figma-Tokens
安装完成后,在 Figma 文件中打开 Figma Tokens 插件面板,并点击“Get started”,开始创建。
2. 创建 Token 变量
在 Color 分类处点击“+”号,将之前整理的 Design Token 资产表里的内容一个一个录入进插件当中。如何实现 Token “套娃”呢?例如我们需要创建一个“–td-brand-color”,值为“–td-brand-color-8”,只需要在 Color 值的输入框输入“{–td-brand-color-8}”或“$–td-brand-color-8”,这里通过和开发沟通,推荐使用“{ }”大括号的形式进行赋值。全部 Token 创建完成之后,点击“Create Styles”便可将插件中的样式生成到 Figma 右侧的样式面板中。同时,插件中的修改也能够与样式进行实时同步。
3. 通过 JSON 代码快捷导入 Token
上面的方法是需要根据 Token 对照表,通过手动的方式一个一个录入 Token,如果团队的设计师有一点代码功底,或者前端同学能够提前介入进来,直接根据 Token 对照表写一份 JSON 文件,那么也可以直接通过复制 JSON 文件里面对应到代码粘贴到 Figma Tokens 的插件当中,能够直接读取代码生成 Token 样式,并联动 Figma 文件。
4. 导入 Figma 文件中已有的样式
除了使用 Figma Tokens 插件一个一个创建样式以外,插件还支持从我们的 Figma 文件中已经有样式导入,我们也可以点击“Import”,再勾选“Color”、“Text”、“Shadows”一键导入文件中的样式并生成 Token。
向研发交付 Design Token 1. 输出 Token.json 代码文件
点击顶部“JSON”,再点击“Export”,即可将插件面板的创建的 Token 导出为一个 token.json 文件,将 json 文件交付给开发,开发便可使用。若开发不知道如何使用,可以分享这个 Figma Tokens 作者发布在 Github 上的代码稍加学习,便知道如何使用了。
github 地址: https://github.com/six7/figma-tokens-example-tailwindcss
2. 如何更新 Token
当之前定义好的 Design Token 需要增删改时,插件官方推荐的更新同步方式主要有 JSON、 http://JSONBin.io 、URL、GitHub 等几种方式,具体可查阅官方文档: https://docs.tokens.studio/sync/sync 。由于后面集中同步方式涉及到一些小门槛,这里简单介绍第一种最为通俗的更新方式就是直接通过更新 JSON 文件,可以在企业 IM 中和研发创建一个共享空间,每次 Token 有更新只需要将导出的 JSON 文件替换原有的文件即可,开发再应用新的 JSON 文件,便可实现高效便捷的更新 Token。
使用 Design Token 在产品中一键换肤 在一些 To B SaaS 产品当中,产品的主色可能会跟随客户公司的品牌色进行调整。使用 Design Token 便能够便捷高效地实现一键换肤。
1. 首先我们会定义一个“global”基础主题,在这里将所有后面不同皮肤的颜色都写入进来;
2. 在“blue”和“red”主题皮肤下,品牌色命名都为:“tr-color-primary-brand-light-default”,但是他们两个皮肤的值不同,一个是 global 中的“{–color-blue-light-6}”,一个是 global 中的“{–color-red-light-6}”;
3. 在蓝色皮肤下将“blue”勾选,切换至红色皮肤,只需要勾选“red”,即可实现文件内的所有变量全局替换,同时 Figma 右侧的样式也能实时联动。
结语 近几年,越来越多的团队开始搭建自己公司产品的设计系统 Design System 赋能到具体产品中落地。我所在的团队也在建设一套适用于自己公司业务的设计系统,在推动设计系统落地时,便运用了 Design Token 进行落地,极大提高了公司设计和研发团队的协作效率。Design Token 给 Design System 带来了新的方式和新的可能,未来希望能够不断扩大 Design Token 的应用价值,赋能到更多的业务和产品当中,让设计系统的应用变得更便捷、更高效。
我是设计师波波 Bobby He,深耕 B 端体验设计,持续学习输出中,欢迎关注私信与我交流~
参考文章
https://mp.weixin.qq.com/s/9LJT89vqjdVwsafDckh6Pw
https://blog.prototypr.io/design-tokens-with-figma-aef25c42430f
https://didoo.medium.com/how-to-manage-your-design-tokens-with-style-dictionary-98c795b938aa
https://uxdesign.cc/design-tokens-cheatsheet-927fc1404099
https://docs.tokens.studio
大厂出品!腾讯开源企业级设计体系 TDesign TDesign 是来自腾讯内部近 300 名设计师与开发者共同打造,经由 500+ 项目使用、验证和锤炼过的企业级设计体系, 秉承包容、多元、进化、连接的价值观,TDesign 期望与用户、行业及合作伙伴等一起打造具有竞争力的产品体验。
阅读文章 >
-
大厂都在用! 万字干货带你读懂并应用 Design Token
UI交互 2022-05-16前言 随着近几年 Figma 等一系列在线设计工具的崛起,相信设计师对设计系统的都有了更深的了解。其实设计系统的建设是一个非常庞大而复杂的工...前言 随着近几年 Figma 等一系列在线设计工具的崛起,相信 设计师 对设计系统的都有了更深的了解。其实设计系统的建设是一个非常庞大而复杂的工程。我们通过各种设计规范等对产研流程提效,但还是会经常遇到一些棘手的问题。
1. 开发用的颜色/字体样式/投影等与设计稿存在差距;
2. 颜色选择困难。不同设计师之间在用各种层级的文本颜色时,到底用 Gray1 还是用 Gray2,不知道该选哪一种;
3. SaaS 类的产品需要根据客户的品牌色调整产品的主色,设计和开发都面临巨大的工作量;
4. 设计稿的更新无法及时在开发者的代码中体现,一是因为开发首先需要拿到新的设计稿,再根据标注甚至肉眼判断区别后更新代码;另一方面,设计稿中看似简单的改动可能导致较大范围的代码改动,例如字体大小等;
为了解决和优化上述的问题,Design Token 应运而生。它可以高效地解决产品设计和开发过程中的细节和风格一致性的问题,提高产研团队设计质量和协作效率。
什么是 Design Token “Token”原本的意思是“令牌,指令”,与 Design 连在⼀起指“设计变量”。在工程逻辑中用于用户身份与服务器端进行验证,而在设计体系中,Design Token 则可以简单理解为封装的视觉样式参数。它通过规定样式参数,并通过一套符合设计师、工程师理解的统一的命名规则,为这些样式参数的定义名称。
腾讯出品的 Design Token 应用指南:设计篇 在线设计、研发协作工具和组件概念的普世化,让设计、研发效率大大提升;数字产品发展到今天,数字产品对迭代速度、个性化品质要求也越来越强。
阅读文章 >
原子设计理论提出者 Brad Frost (布拉德 · 弗罗斯特)在《Atomic Design》中提到:原子设计理论从原子(Atoms)、分子(Molecules)、组织(Organisms)、模板(Templates)、页面(Pages)、标准流程(Patterns)再到更完善的 设计体系 (Design Systems),这一切都是为了产品设计、研发效率和一致性提供帮助。同时,它们也是传达设计原则、构成产品独特气质的基石。Design Token 就是原子级的最基础的构成要素。
根据北美顶级 SaaS 企业的开源设计系统 Saleforce Lightning Design System 的解释,Design Token 是设计系统中的可视化原子,是设计属性的命名实体,使用它们代替具体编码值(如颜色的 16 进制、间距的像素值等),以便于维护一套可扩展且一致性的设计系统。
可以说,Token 就是最底层的原子,本质上就是找到了组件、属性和代码之间的对应关系,统一了设计样式和前端语言,使组件和设计系统可以被快速管理。
Design Token 的优势 基于上述关于 Design Token 的基础解释,可以将 Design Token 的好处可总结为:
设计语义-更易理解 设计方案-更加一致 主题皮肤-一键替换 设计变更-高效维护 设计成果-精准还原
1. 设计语义-更易理解
每一个组件的基础元素都可以用 Token 进行语义化的命名,帮助设计师和开发建立统一的描述语言。例如#91d5ff 这个色值按照传统的设计规范命名的方式,它可能叫 Blue-3。在实际应用的时候,设计师和开发并不能直接通过 Blue-3 来理解这个颜色到底是用在什么具体场景当中。而当我们通过 Token 语义的方式让它达到组件级别的精度时,它会叫:color-primary-brand-light-disable,不同的设计师和开发就能迅速的理解这个颜色应用在什么具体场景当中。
2. 设计方案-更加一致
当使用组件库实际运用到项目当中时,我们有时候会有不同设计师合作产出一个项目的情况。对于一些不熟悉设计规范或新加入的设计师来说,就会困惑,当使用二级文本色的时候,究竟是用 Gray2、还是 Gray3、Gray4。而这个时候,我们定义一个 Token 名称叫:color-text-secondary,这个 Token 嵌套的颜色是 :Gray3,这样我们设计师在使用的时候,只需要选择 color-text-secondary 这个 Token 变量即可,能选择的颜色就是唯一的,这就能在一定程度上确保不同设计师在同一个场景当中的设计稿保持高度一致性。
3. 主题皮肤-一键替换
主题皮肤的替换可以用在两个维度,一是浅色模式和暗色模式的替换,二是不同品牌色之间的替换。我们可以将不同主题的同一个场景下的颜色使用同一个 Token 命名,例如变量名都叫:color-primary-brand-light-default,蓝色皮肤下对应的值为:#165DFF;红色皮肤对应的值为:#F53F3F。然后通过插件面板的一键操作即可完美切换。同时这种切换模式也可以带入 tokn.josn 代码(后面会具体讲如何输出 json 文件交付开发)中,与开发进行同步。
4. 设计变更 高效维护
还是上面的例子,当我们的二级文字颜色 color-text-secondary 需要进行变更,从 Gray-600 变为 Gray-500。如果没有“color-text-secondary”这个 Token,我们可能需要手动去选中所有用了 Gray-600 的二级文字的图层,一个一个地将它们改为 Gray-500,而当我们有了“color-text-secondary”这么一个 Token 时,我们只需要将 color-text-secondary 的值一键从 Gray-600 变为 Gray-500 便可以完成产品全局的颜色变更。进而设计师可以将 token.json 代码(后面会具体讲如何输出 json 文件交付开发)同步更新给开发 ,开发直接一键替换,线上的界面就能半自动地迅速应用到变更后的色值。
5. 设计成果-精准还原
设计稿能否被开发精准还原,这几乎是每一个设计师在实际项目中会遇到的问题。我们在进行设计验收的时候,即便花了很多时间进行走查,在表格上列举了很多细节问题,但最终的还原效果并不能得到保障。甚至在一些时候会感觉做验收比重新做一遍设计稿还要费劲「emo」,有的时候甚至会直接按 F12 在网页上改代码给开发提示「狗头」。
例如,在常规不使用 Token 的情况下,开发同学使用的是硬代码的模式,代码编辑器无法判断这个颜色是否正确,如果开发不小心输错了一位数,就很可能导致线上运行时候的不一致。而使用了 Token 之后,开发只需要输入这个场景的 Token 名称的前缀,代码编辑器便会自动化地提示有哪几个颜色供选择就可以了,如果不正确,代码编辑器还会给出报错提示,开发同学可以在写代码的过程中完成基础的检验工作,这样一来,设计师的成果便能够一定程度上的精准还原,设计师验收的工作量也会小很多。
在设计系统中应用 Design Token 上面讲了这么多理论,接下来开始实战,准备好~
1. 提炼 Token 组成元素
Design Token 是构成设计语言的基本构建块,是设计系统中最核心、最基础的影响视觉风格的元素。根据 Figma Tokens 插件默认提供的面板中,可以将分别以下组成元素:
Color 颜色、Shadow 投影、Typography 字体样式、Size 尺寸、Space 间距、Border Radius 描边圆角、Border Width 描边宽度、Opacity 透明度等
2. 定义 Token 命名规则
关于 Token 的命名规则,不同的团队有不同的定义方式,但其本质都是为了提高产品的一致性和工作效率。因此在对 Token 命名规则进行分类整理时,设计需要与开发同事达成一致,以确保能够更好地落地。
在制定自己产品的 Token 命名规则前,带大家看一下大厂的 Design Token 都是怎么命名的
腾讯文档 Token 变量表: https://mp.weixin.qq.com/s/sRRPlsxaUZj7220PLoFiRw
腾讯 TDesign 开源设计系统 Token: https://github.com/Tencent/tdesign-common/blob/develop/style/web/theme/_light.less
:root, :root[theme-mode="light"] { // 文字 & 图标 颜色 --td-font-white-1: rgba(255, 255, 255, 100%); --td-font-white-2: rgba(255, 255, 255, 55%); --td-font-white-3: rgba(255, 255, 255, 35%); --td-font-white-4: rgba(255, 255, 255, 22%); --td-font-gray-1: rgba(0, 0, 0, 90%); --td-font-gray-2: rgba(0, 0, 0, 60%); --td-font-gray-3: rgba(0, 0, 0, 40%); --td-font-gray-4: rgba(0, 0, 0, 26%); // 基础颜色 --td-brand-color: var(--td-brand-color-8); // 色彩-品牌-可操作 --td-warning-color: var(--td-warning-color-5); // 色彩-功能-警告 --td-error-color: var(--td-error-color-6); // 色彩-功能-失败 --td-success-color: var(--td-success-color-5); // 色彩-功能-成功 // 基础颜色的扩展 用于 hover / 聚焦 / 禁用 / 点击 等状态 --td-brand-color-hover: var(--td-brand-color-7); // hover 态 --td-brand-color-focus: var(--td-brand-color-2); // focus 态,包括鼠标和键盘 --td-brand-color-active: var(--td-brand-color-9); // 点击态 --td-brand-color-disabled: var(--td-brand-color-3); // 禁用态 --td-brand-color-light: var(--td-brand-color-1); // 浅色的选中态 // 警告色扩展 --td-warning-color-hover: var(--td-warning-color-4); --td-warning-color-focus: var(--td-warning-color-2); --td-warning-color-active: var(--td-warning-color-6); --td-warning-color-disabled: var(--td-warning-color-3); --td-warning-color-light: var(--td-warning-color-1); // 失败/错误色扩展 --td-error-color-hover: var(--td-error-color-5); --td-error-color-focus: var(--td-error-color-2); --td-error-color-active: var(--td-error-color-7); --td-error-color-disabled: var(--td-error-color-3); --td-error-color-light: var(--td-error-color-1); // 成功色扩展 --td-success-color-hover: var(--td-success-color-4); --td-success-color-focus: var(--td-success-color-2); --td-success-color-active: var(--td-success-color-6); --td-success-color-disabled: var(--td-success-color-3); --td-success-color-light: var(--td-success-color-1); // 遮罩 --td-mask-active: rgba(0, 0, 0, 60%); // 遮罩-弹出 --td-mask-disabled: rgba(255, 255, 255, 60%); // 遮罩-禁用 // 文本颜色 --td-text-color-primary: var(--td-font-gray-1); // 色彩-文字-主要 --td-text-color-secondary: var(--td-font-gray-2); // 色彩-文字-次要 --td-text-color-placeholder: var(--td-font-gray-3); // 色彩-文字-占位符/说明 --td-text-color-disabled: var(--td-font-gray-4); // 色彩-文字-禁用 --td-text-color-anti: #fff; // 色彩-文字-反色 --td-text-color-brand: var(--td-brand-color-8); // 色彩-文字-品牌 --td-text-color-link: var(--td-brand-color-8); // 色彩-文字-链接 // 分割线 --td-border-level-1-color: var(--td-gray-color-3); --td-component-stroke: var(--td-gray-color-3); // 边框 --td-border-level-2-color: var(--td-gray-color-4); --td-component-border: var(--td-gray-color-4); // 内投影 用于弹窗类组件(气泡确认框 / 全局提示 / 消息通知)的内描边 --td-shadow-inset-top: inset 0 .5px 0 #dcdcdc; --td-shadow-inset-right: inset .5px 0 0 #dcdcdc; --td-shadow-inset-bottom: inset 0 -.5px 0 #dcdcdc; --td-shadow-inset-left: inset -.5px 0 0 #dcdcdc; // table 特定阴影 --td-table-shadow-color: rgba(0, 0, 0, 8%); // 滚动条颜色 --td-scrollbar-color: rgba(0, 0, 0, 10%); }{{{pre> Element-Plus: https://element-plus.org/zh-CN/
--el-bg-color: #ffffff; --el-bg-color-page: #ffffff; --el-bg-color-overlay: #ffffff; --el-text-color-primary: #303133; --el-text-color-regular: #606266; --el-text-color-secondary: #909399; --el-text-color-placeholder: #a8abb2; --el-text-color-disabled: #c0c4cc; --el-border-color: #dcdfe6; --el-border-color-light: #e4e7ed; --el-border-color-lighter: #ebeef5; --el-border-color-extra-light: #f2f6fc; --el-border-color-dark: #d4d7de; --el-border-color-darker: #cdd0d6;{{{pre> Ant Design: https://ant.design/components/overview-cn/
html { --ant-primary-color: #1890ff; --ant-primary-color-hover: #40a9ff; --ant-primary-color-active: #096dd9; --ant-primary-color-outline: rgba(24, 144, 255, .2); --ant-primary-1: #e6f7ff; --ant-primary-2: #bae7ff; --ant-primary-3: #91d5ff; --ant-primary-4: #69c0ff; --ant-primary-5: #40a9ff; --ant-primary-6: #1890ff; --ant-primary-7: #096dd9; --ant-primary-color-deprecated-pure: ; --ant-primary-color-deprecated-l-35: #cbe6ff; --ant-primary-color-deprecated-l-20: #7ec1ff; --ant-primary-color-deprecated-t-20: #46a6ff; --ant-primary-color-deprecated-t-50: #8cc8ff; --ant-primary-color-deprecated-f-12: rgba(24, 144, 255, .12); --ant-primary-color-active-deprecated-f-30: rgba(230, 247, 255, .3); --ant-primary-color-active-deprecated-d-02: #dcf4ff;{{{pre> 以上截取的部分 Token 基本是在 Github 上开源社区能找到相关的代码。如果我们想要找一个非开源的设计系统的 Token 怎么找呢?
这里以飞书为例,个人觉得飞书整体的配色非常舒适,想要研究一下其中的 Token 是怎么制定的。
首先打开飞书网页,按 F12,选中任意元素,便可在“样式”中找到飞书产品所有的 Token 是如何命名,以及可以分析研究其中的色彩运用规律。
飞书 Token: www.feishu.cn
--bg-base: var(--N100); --bg-base-raw: var(--N100-raw); --bg-body: var(--N00); --bg-body-raw: var(--N00-raw); --bg-body-overlay: var(--N50); --bg-body-overlay-raw: var(--N50-raw); --bg-content-base: #f8f9fa; --bg-content-base-raw: 248,249,250; --bg-filler: var(--N200); --bg-filler-raw: var(--N200-raw); --bg-float: var(--N00); --bg-float-raw: var(--N00-raw); --bg-float-base: var(--N100); --bg-float-base-raw: var(--N100-raw); --bg-float-overlay: var(--N50); --bg-float-overlay-raw: var(--N50-raw); --bg-float-push: rgba(var(--N00-raw),0.8); --bg-mask: rgba(0,0,0,0.4); --bg-mask-raw: 0,0,0;{{{pre> Token 命名规则总结
通过上面的大厂 Token 参考我们可以分析出一些普适性的规则:
1. 单词之间用“-”分隔;
2. Token 前缀可自定义添加自己产品的简称,例如:“–el-xx”、“–ant-xx”、“–td-xx”;
3. Token 可以套 Token,例如:–td-brand-color-hover: var(–td-brand-color-7);
3. 整理 Design Token 资产表
分析完各个大厂的 Token 规则之后,接下来正式开始对自己产品的 Design Token 开始建设,首先便是整理一份 Design Token 资产表,可以用文档、表格等形式整理。
这里以 TDesign 为例,需要包含 3 列:Token、Value、Describe。这份 Token 资产表整理好之后,可以在设计团队内部进行评审,通过之后再与开发进行对齐。
来源: https://tdesign.tencent.com/design/color
通过工具创建 Token 并联动设计文件 以上主要讲的是在思维层面 Design Token 是怎么推导的,接下来重点讲一下怎么借助一些实用的工具将 Design Token 实现自动/半自动化的落地。
这里主要推荐的工具是 Figma Tokens 插件,它是一款基于 Figma 的插件,相对于 Figma 右侧面板原生自带的样式外,能够实现多层级的 Token 管理,同时插件内容能够与 Figma 设计文件实现实时联动。
1. 安装并运行插件
插件安装地址: https://www.figma.com/community/plugin/843461159747178978/Figma-Tokens
安装完成后,在 Figma 文件中打开 Figma Tokens 插件面板,并点击“Get started”,开始创建。
2. 创建 Token 变量
在 Color 分类处点击“+”号,将之前整理的 Design Token 资产表里的内容一个一个录入进插件当中。如何实现 Token “套娃”呢?例如我们需要创建一个“–td-brand-color”,值为“–td-brand-color-8”,只需要在 Color 值的输入框输入“{–td-brand-color-8}”或“$–td-brand-color-8”,这里通过和开发沟通,推荐使用“{ }”大括号的形式进行赋值。全部 Token 创建完成之后,点击“Create Styles”便可将插件中的样式生成到 Figma 右侧的样式面板中。同时,插件中的修改也能够与样式进行实时同步。
3. 通过 JSON 代码快捷导入 Token
上面的方法是需要根据 Token 对照表,通过手动的方式一个一个录入 Token,如果团队的设计师有一点代码功底,或者前端同学能够提前介入进来,直接根据 Token 对照表写一份 JSON 文件,那么也可以直接通过复制 JSON 文件里面对应到代码粘贴到 Figma Tokens 的插件当中,能够直接读取代码生成 Token 样式,并联动 Figma 文件。
4. 导入 Figma 文件中已有的样式
除了使用 Figma Tokens 插件一个一个创建样式以外,插件还支持从我们的 Figma 文件中已经有样式导入,我们也可以点击“Import”,再勾选“Color”、“Text”、“Shadows”一键导入文件中的样式并生成 Token。
向研发交付 Design Token 1. 输出 Token.json 代码文件
点击顶部“JSON”,再点击“Export”,即可将插件面板的创建的 Token 导出为一个 token.json 文件,将 json 文件交付给开发,开发便可使用。若开发不知道如何使用,可以分享这个 Figma Tokens 作者发布在 Github 上的代码稍加学习,便知道如何使用了。
github 地址: https://github.com/six7/figma-tokens-example-tailwindcss
2. 如何更新 Token
当之前定义好的 Design Token 需要增删改时,插件官方推荐的更新同步方式主要有 JSON、 http://JSONBin.io 、URL、GitHub 等几种方式,具体可查阅官方文档: https://docs.tokens.studio/sync/sync 。由于后面集中同步方式涉及到一些小门槛,这里简单介绍第一种最为通俗的更新方式就是直接通过更新 JSON 文件,可以在企业 IM 中和研发创建一个共享空间,每次 Token 有更新只需要将导出的 JSON 文件替换原有的文件即可,开发再应用新的 JSON 文件,便可实现高效便捷的更新 Token。
使用 Design Token 在产品中一键换肤 在一些 To B SaaS 产品当中,产品的主色可能会跟随客户公司的品牌色进行调整。使用 Design Token 便能够便捷高效地实现一键换肤。
1. 首先我们会定义一个“global”基础主题,在这里将所有后面不同皮肤的颜色都写入进来;
2. 在“blue”和“red”主题皮肤下,品牌色命名都为:“tr-color-primary-brand-light-default”,但是他们两个皮肤的值不同,一个是 global 中的“{–color-blue-light-6}”,一个是 global 中的“{–color-red-light-6}”;
3. 在蓝色皮肤下将“blue”勾选,切换至红色皮肤,只需要勾选“red”,即可实现文件内的所有变量全局替换,同时 Figma 右侧的样式也能实时联动。
结语 近几年,越来越多的团队开始搭建自己公司产品的设计系统 Design System 赋能到具体产品中落地。我所在的团队也在建设一套适用于自己公司业务的设计系统,在推动设计系统落地时,便运用了 Design Token 进行落地,极大提高了公司设计和研发团队的协作效率。Design Token 给 Design System 带来了新的方式和新的可能,未来希望能够不断扩大 Design Token 的应用价值,赋能到更多的业务和产品当中,让设计系统的应用变得更便捷、更高效。
我是设计师波波 Bobby He,深耕 B 端体验设计,持续学习输出中,欢迎关注私信与我交流~
参考文章
https://mp.weixin.qq.com/s/9LJT89vqjdVwsafDckh6Pw
https://blog.prototypr.io/design-tokens-with-figma-aef25c42430f
https://didoo.medium.com/how-to-manage-your-design-tokens-with-style-dictionary-98c795b938aa
https://uxdesign.cc/design-tokens-cheatsheet-927fc1404099
https://docs.tokens.studio
大厂出品!腾讯开源企业级设计体系 TDesign TDesign 是来自腾讯内部近 300 名设计师与开发者共同打造,经由 500+ 项目使用、验证和锤炼过的企业级设计体系, 秉承包容、多元、进化、连接的价值观,TDesign 期望与用户、行业及合作伙伴等一起打造具有竞争力的产品体验。
阅读文章 >
-
超多案例!交互手势全解析(三):多指类和组合类
UI交互 2022-05-16多指类手势 之前的文章讲解位移类手势和点击类手势的时候,提到过不同的描述维度会让手势产生不同的变种,比如触发时机、 按下次数、 阈值类型等。...多指类手势 之前的文章讲解位移类手势和点击类手势的时候,提到过不同的描述维度会让手势产生不同的变种,比如触发时机、 按下次数、 阈值类型等。我们同样也可以把使用手指的数目看做是一个描述维度,使用的手指数目不同也会产生不同的手势变种,有着不同的应用方式。
万字干货!交互手势全解析(一):位移类手势 前言 一年前更新了文章《交互手势的容错性和逻辑性》之后,有很多读者朋友询问是否能够做一个详细的讲解交互手势的系列文章,讲解每个手势的不同之处、应用场景以及在工作中如何使用。
阅读文章 >
6000字干货!交互手势全解析二:点击类手势 点击类手势的描述维度 与位移类手势类似,点击类手势也存在着自己的描述维度,它们分别是触发时机、点击次数和时间限制,三者的变化同样会产生不同的变种。
阅读文章 >
使用多指类手势的原因主要有两个:
① 单个界面对于手势的需求量比较大。当可用的 单指类手势 都已经被占用后,通过引入多指的维度来扩充手势,从而满足设计需要,避免产生手势冲突;
② 系统级的全局手势通常使用多指类手势来尽量避免与第三方App的手势冲突。
全局手势如果设计得过于简单很容易引发手势冲突。例如一加手机的某个系统版本中,有一个全局手势是单指连续点击三次触发页面缩放,对于非游戏类的 App 来说基本没有这个手势,不必担心误操作,但是对于游戏类 App 而言,连续点击屏幕上的攻击键是一个很常用的操作,连续点击三次触发页面缩放的设计导致用户游戏过程中极易不小心触发了页面缩放。iOS 系统的做法很巧妙,在点击次数外增加了手指个数的维度,通过三指双击才能够触发页面缩放,从而基本解决了手势冲突问题。
1. 多指点击 特点
多指点击同样有点击次数、触发时机和时间限制这些描述维度,它们的变化会给多指点击带来不同变种。在 App 中多指点击常见的变种一般有多指单击、多指按下,而像多指双击、多指长按这一类更复杂的变种较为少见,一般仅用于系统级的全局手势。
案例
在 iOS 的短信 App 中,可以通过「双指按下」快速选中一个短信。
在 iOS 的设置中开启缩放功能后,任何页面都可以通过「三指双击」触发页面缩放。
2. 多指位移 特点
多指位移同样有控制方式、稳定化效果、以及阈值类型这些描述维度,它们的变化可以实现多指轻扫、多指拖拽、多指甩动这些效果。多指位移通常用来移动受控物或触发某个功能。
案例
在 iOS 的短信 App 中,可以通过「双指拖拽」快速多选短信。
在网易云音乐的播放页,向下「双指轻扫」可以触发黑胶背后的故事。
在笔记应用 GoodNotes 中,浏览模式下可以通过「单指甩动」浏览页面,但是当进入编辑模式时,为避免手势冲突,单指甩动会变为「双指甩动」。
3. 多指缩放
特点
多指缩放与多指位移比较相近,不同之处在于多指缩放的手指移动方向是以某一个点为中心进行汇聚或分散。控制方式、稳定化效果、以及阈值类型这些描述维度同样适用于多指缩放。
案例
iPad 可以通过「四指缩小」快速退出应用。
iOS 的照片 App 中,可以通过「双指缩放」缩小或放大照片。
网易云音乐可以通过「双指缩小」触发抱一抱彩蛋。
4. 多指旋转 特点
多指旋转可以看做是以多指的中心为圆心,通过多指的移动来模拟出围绕这个圆心做旋转的手势。它是对物理世界几乎 100% 的映射,因此一般用于旋转某个物体,调节旋钮等操作。
案例
iOS 的照片 App 中,可以通过「双指旋转」转动照片。
5. 多指特殊手势 有一类特殊的多指手势可以支持更复杂的交互,一般为系统级手势。例如 iOS 中长按桌面的 App 后进行拖拽时,可以同时点击其他 App 一起进行拖拽。
组合类手势 组合类手势由两个或两个以上的手势组成,因此隐蔽性较强,如果不进行引导很难被用户发现,也是由于这种特性,它所触发的功能一般有其他更明显的入口或操作方式,使用它通常是为了增加高频功能的操作效率,服务于专家型用户。组合类手势之所以能够提高效率,是因为它把用户平时需要通过多个步骤才能完成的操作简化为了短时间即可完成的手势组合。虽然初次使用有一定学习成本,但是一旦用户形成肌肉记忆,操作过程会非常快速。
因为组合类手势更加多变,且系统并未直接提供这类手势给设计师调用,需要设计师自己根据需求来组合搭配,因此很考验 设计师 的创新能力。之后的案例展示仅为常见的用法,并不是全部。通过举一反三,我们也可以设计出不同与本文中的案例但更满足需求的组合类手势。
1. 设计模型 下面这个表格里的模型是总结常见的组合类手势而设计的,能够涵盖绝大部分的设计需求,但仅适用于单指的组合类手势设计。
模型将组合类手势的操作过程分为启动、调整和触发三个阶段。每一阶段由一个分支手势构成。比如在第一阶段中,可以选用的手势有长按、双按、轻扫 B。并不是只能选用这三个,而是它们三个作为第一阶段的分支手势体验良好且最常用。
①启动阶段的目的是创建一个新模式,在新模式下,界面原有的手势会失效,系统只能响应②调整阶段的手势,可以选用拖拽和轻扫E。在③触发阶段可以进行抬起、停留来触发最后的功能,如果选择「无操作」,则说明手势在②调整阶段已经达到目的,不需要③触发阶段的手势。
仅解释这个模型可能比较难理解,下面会用一些案例进行演示。
2. 常见案例 长按+轻扫 E+抬起
特点
通过长按激活一个控件,在手指不离开屏幕的情况下将手指移动到某个功能选项的位置上,然后通过抬起触发该功能。功能选项一般出现在手指的附近,从而方便下一步操作。
案例
花瓣 App 中长按某个图片后可以快速进行收藏等操作。
长按+拖拽+停留
特点
通过长按激活一个控件,在不松手的情况下将手指拖动到控件的某个功能选项的位置上,然后停留特定时间触发该功能。
案例
在京东读书 App 中,需要跨页选择文本时,需要长按后拖动手指至页面左下角后,停留一段时间进行翻页。
在 iOS 桌面长按图标将其拖动到边界,停留一段时间后可以将图标移动到下一页。
为什么上面两个案例在触发阶段使用停留而不是抬起?
因为完成了触发阶段的操作后手指仍然需要对受控物保持控制状态,此时不能松开手指,因此这种情况下操作的触发手势使用停留更合适。
轻扫 B+轻扫 E+抬起
特点
通过轻扫 B 激活一个控件,在不松手的情况下将手指往某个方向移动来选中某个功能选项,然后通过抬起触发该功能。
案例
Chrome 浏览器中,下拉页面后将手指左右移动并抬起可以触发其他功能。
双按+拖拽
定义
当一个界面中,上下左右四个方向都已经存在位移类手势了,但是仍然有功能需要新增额外的位移类手势。此时可以将双按看做是一个模式启动,双按后可以立即使用拖拽来触发相应功能。
案例
地图类 App 中,可以通过双按后手指不离开屏幕往上拖拽来放大地图,往下拖拽来缩小地图,从而解决了单手操作时难以放大缩小地图的问题。不足之处在于,这个手势的教育成本较高,只有少部分用户能够发现并持续使用。
3. 根据使用场景进行分类 上文依据操作方式将案例进行了分类。实际上在设计过程中,使用场景分类更能便于我们去选择适合的手势。我将组合类手势通过使用场景的区别分为了四类,它们分别是 ①单个属性的调整、②多个功能选其一、③默认选择主要功能、④同时进行两项操作。由于下面案例的手势在上文已经进行了介绍,所以不做赘述仅罗列更多案例帮助理解。
单个属性的调整
单个属性可以是亮度、大小、位置等,通过双按或长按启动模式后,再使用拖拽来进行调整。
双按+拖拽
每个地图 App 基本都支持这个手势,双按后通过拖拽来对地图大小进行调整。
(上文有动图示例,这里不再重复展示)
长按+拖拽
在快手 App 的拍摄界面中,长按拍摄键后上下拖拽可以调整取景框的大小。
多个功能选其一
通过长按唤起功能菜单,在手指不离开屏幕的情况下移动到某个功能后抬起触发该功能。
长按+轻扫 E+抬起
在 iOS 的桌面长按 App 的图标可以唤起更多功能菜单,移动手指到某个功能后抬起可触发该功能。
默认选择主要功能
使用长按或轻扫 B 后可以直接松手默认触发主要功能,但如果保持手指不离开屏幕使用轻扫 E,则可以选择其他次要的功能,然后抬起触发。
长按+轻扫 E+抬起
微信录制完语音后,抬起默认会触发发送语音,也可以通过移动手指到「取消」或「转文字」上来触发另外两个较为低频的功能。
轻扫 B+轻扫 E+抬起
下面是一个概念案例,来自于一本交互设计相关图书《 交互设计 语言》,非常推荐阅读。在下图案例中,手势的目的是解决微信的多层级导致的返回步骤过多问题。右滑页面后如果直接松手会返回上一页,但是如果上下移动则可选择其他层级的页面,抬起后进行跳转。
同时进行两项操作
部分场景中,长按后手指需要保持接触屏幕的情况下同时操作两个功能,由拖拽和停留分别操作。
长按+拖拽+停留
暂无更多案例展示,可以看上文的京东读书 App 选中更多文字的同时进行翻页、在 iOS 桌面拖动图标的同时进行翻页的案例,在这里就不重复展示了。
以上就是关于多指类和组合类手势的思考总结,后续暂定的更新计划如下。有兴趣的朋友可以持续关注哦~
4000字干货!交互手势全解析:描述维度 交互手势的描述维度是什么?
阅读文章 >
欢迎关注作者微信公众号:「设成于思」