《交互式程序设计 第2版》一1.2.4 交互语言-阿里云开发者社区

开发者社区> 华章出版社> 正文

《交互式程序设计 第2版》一1.2.4 交互语言

简介:

本节书摘来华章计算机《交互式程序设计 第2版》一书中的第1章 ,第1.2.4节,Joshua Noble 著 毛顺兵 张婷婷 陈宇 沈鑫 任灿江 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2.4 交互语言

任何一种交互都需要一套相应的词汇。例如,你要用鼠标把桌面上的某个文件删除,你会说“选中该文件,然后把它拖到回收站”。事实上,对你这个动作,系统并不是完全如你这般理解,但没关系。重要的是你明白你可以做什么动作,而对于同一个动作,系统有相同的理解,并作出你所预期的响应。建立一个有意义、有效和有结果的交互,就像创造一种语言或代码,需要交互双方对符号的意思和动作指令的意义有一致的协议。而同一个符号或动作,在不同类型的界面和交互中, 含义会相差很大。
各式各样的交互种类繁多,本书将会探讨其中某些类型,但不要把以下内容当作分类清单。人和电脑之间的交互遍布我们生活和工作的方方面面,丰富的种类之间,关系千丝万缕,就算只提及最常见、最普通的几种,也不可能将它们毫无重叠地严格分类。
物理(实物)操作
这是电子类和多功能人机交互中最早出现的交互界面。汽车和收音机是最早的两个具备多种界面元素的常见机器,而在它们出现之前,机器一般都只有一个开关、一个功能。用户的注意力一次只会集中在一个任务上。收音机和汽车的出现带来新的挑战,这些机器由非专业人士操作,并且这种操作不是单一的。对于汽车,操作包括常规的速度和方向以及突发的其他任务。它的界面应该是一个操纵装置,有时它对应着一种状态,而这种状态可通过拉动开关或按下按钮来激发;有时它对应着一种范围,这个范围可通过转动旋钮或推动滑块来设置。界面不仅让用户设置参数的值,还通过标识滑块、旋钮、仪表盘和开关,让用户确认这些值。仪表盘、示波器和其他反馈功能的界面元素,让用户迅速修改信息而无须去碰及他们正在操作的实物。这就需要让用户在操作控件的同时,可以监控多种信息。对控件的物理操作是交互方式中最重要、最有趣的一种。
代码输入
在计算时代开始之初,典型的交互场景就是用户坐在一个终端前面,输入代码指令,计算机运行,显示器以文本方式输出结果。这就是驱动式交互,即用一套预设的可识别的系统指令去操作机器。用户需要了解这套指令,或者起码能自如地在如此简陋的界面上寻求帮助信息。键盘当然不仅仅用来敲指令,不要忘了还有快捷键。例如,深受广大程序员喜爱的撤销组合键Ctrl+Z,普遍出现在各种应用软件中,包括文档编辑软件、图片处理软件和浏览器。 快捷键其实和命令行没区别,但它能让用户在不分心的情况下,轻易快捷地执行或重复一个操作。
鼠标操作
这是目前最常用的人机交互方式,常见的应用和软件界面都是按鼠标交互来设计的。鼠标交互的语言已被广大设计师和用户所熟悉,包括拖放、双击,以及单击保持。在不同的应用中,鼠标交互语言的意思不尽相同,也没有严格的标准将它们规范和固定下来。就算在同一个应用中,一种特定的操控方式也可能同时具备不同的意思,用户需要通过应用给出的反馈去学习在不同场景下的意思。
出现、位置和图像
利用参与者或用户的出现和退场,是一种简单又直观的交互方式。可以通过检测重量、运动、光、热或声音来判断用户的进入和退出,通常用作开关,启动或结束一段进程。这虽然很简单,但却是交互中强大的基础:把用户亲身请进来,把人物的出现、位置和图像信息利用起来。最简单的例子就是自动门,人靠近的时候自动打开。另一个例子就是Theo Watson的作品Audio Space。进入作品的观者头上戴着一套包括耳机和麦克风的装置,在某点录下自己的声音,留给下一位走到同样位置的人去听;而当前这位观者也能听到之前的人在这一点留下的声音。这让人感觉到每一段声音信号都是从它被记录下来的那个位置发出的。我们可以把人的身体看作一个开关,或者是一个图像——我们可以把它拍摄下来分析而获取有用的信息。这个关于身体“化身”的话题能引申出大量丰富迷人的交互方式,我们把这类交互手段称为“计算机视觉”——摄像头捡拾图像作为输入,像素化并分析。本书稍后会讨论如何使用计算机视觉技术来检测运动甚至识别图像中人脸的位置。
触感界面与多点触控
这本书还在写的时候,就已经出现了苹果iPhone手机和微软Surface平板电脑等使用多点触控界面的设备。这些产品日新月异,我和编辑们都感到本书内容难以追赶上技术前沿。不过,这种使用手势界面的交互,其设计的基本理念和构建的基础方法是不会变的。关键在于弄清楚使用过这类产品的用户习惯什么手势,例如用开合两个手指去拉大或者聚拢,转动两个指头去旋转,通过手指的轻敲选中对象。事实上,手势不仅仅用于软件应用,在机场洗手间,我们挥动手掌让自动水龙头出水,让厕纸架出纸,让干手机出风。我们把这套手势语言用在交互中,使得交互变得像普通语言一样自然,同时又像图标或电子游戏中的按钮一样语义明确。
手势
手势是一种引人入胜的交互模式,因为它和签名、书写和身体的物理性非常相关。它的强大之处在于让交互脱离了非直觉的键盘和鼠标。手势一般用于触摸屏界面、光标移动或书写工具中,以及绘图软件、简易导航、自适应技术或供儿童使用的应用中。这方面的前沿探索多不胜数,从手写识别系统和新型输入法(如Swype),到通过视频捕捉的手部动作识别系统。
人声和语音识别
人声识别是指经过计算机编程,识别出特定词语或短语,并据此执行相应的任务的过程。指令可以简单到只是把人声当作开关来触发一些事件,也可以复杂到识别出不同的词语和命令。按既定的声音模式,计算机逐个识别出词语或指令,然后把它们连在一起,和模式库中的数据作比对,从而判断出是什么命令。而语音识别则是更高级的主题,其过程和简单的指令识别引擎类似,但使用更庞大的数据库和更强大的工具去判别输入的信息。当然,人声不仅包含语音信息,它的音量、声调、发声时长等参量都可以用于交互。
以上简短地列出了交互设计中的热门话题。本书有限的篇幅不足以涵盖交互设计的方方面面,但你能了解到支撑这一切的基础,获取进一步学习所需的相关信息,并应用于你的设计工作中。
访谈:Matt Cottam
Matt是Tellart公司的CEO和联合创始人,活跃于学术界和设计界,他经常参与国际会议并发言,为企业带来丰富的启发和正确的指引。自1999年开始,他在罗德岛设计学院以工作室形式授课,涵盖从极端环境下的设计到物理计算的广泛内容。Matt也是瑞典于默奥设计学院(UID)的客座教授,并在多所高校担任访问教师,包括丹麦哥本哈根交互设计学院(CIID)、挪威奥斯陆建筑与设计学院(AHO)和中国中央美术学院(CAFA)。
硬件草稿的意义何在?
Matt:20世纪90年代初,我刚去罗德岛设计学院读书。那时只有医生能用得上车载电话,而那电话跟鞋盒子差不多大。当时的网络就像一个带显示器的可在其上点击的传真机。五年后我毕业时,学弟学妹们已经全都有手机,每个人都有好几个电子邮箱,浏览器里也已经是丰富的彩色画面、动画和声音了。在当时已经很明显,势不可挡的数码产品和网络技术一定会改变我们使用、感知和设计产品的方式。
在过去五年里,我们做了一些尝试。我们制作了一些看起来像是数码产品的木块和泡沫块;用乙酸粘合打印组件,把屏幕上的内容呈现为实物模型;和学生一起玩角色扮演,去体验和探索交互系统中的行为。这些尝试效果都不错,但毕竟我们以往所受的是传统手工艺训练,我们还是遗漏了一些重要的问题。你要设计一把椅子,一般可以到一个作坊里动动手,切割、塑型、组合不同的材料:钢铁、铝、皮革、夹板、塑料、软木、泡沫;管子、棒条、薄板、树脂。你也可以尝试某种工具(如点焊机、热成型机)的功能和性能,看看它们是怎么燃烧、熔化和拉伸材料的,想想怎样发挥它们的最佳性能。你还可以把特定的工具用在特定的材料上,获得极尽其材料特性的尺寸和形状。你将会创造出一种和谐的形式,因为它来自材料特性和制作方法的独一无二的结合。
我读书的那个年代,设计师没法轻松直接地在软件和电子工具上画草图,真实产品形态无法用软件表达出来。不像一把椅子,你可以坐上去感受到它,而软件和电子工具无法提供真实的体验。
1999年我们创立了Tellart。工作室里,工业设计师、平面设计师、电子工程师和软件工程师紧密合作,能够迅速草拟出一个和真实产品交互的方案。我们一直活跃在“硬件草稿”和“物理计算”社区,在和学生及客户的合作中,开发了不少硬件和软件工具。到目前,就算没上千也有上百个这样的工具把设计和工程结合起来。而连接设计和工程正是本书要教给大家的。现在Tellart不仅拥有图形界面和触感界面这一类工具和平台,我们还提供内容和服务的全套方案。
你是怎样发现一些关系和课题值得尝试和研究的?或者说,假设你已经发现了一些关系,你怎么把关系中的各个方面最优地结合起来?在你的设计实践里,这种探索是怎样的一个过程?
Matt:前几天我收到一封信,告之我在罗德岛设计学院教了12年的书。此外我还在乌默奥设计学院教了6年,在哥本哈根设计学院教了3年。在Tellart公司里,几乎每个人每年都在学校里教点课。我们在中国大陆和中国台湾也开设有课程。我经常被问到怎么在学校和公司之间安排好时间。其实很简单,学校和公司是共生的。学生们求知和创造的劲头都很足,我们和学生一起在工作室的台锯上开工,在应用程序界面上开发,不断地去了解现在的设计师有什么需求,了解他们理想中的工作环境和条件是怎样的。我们开发了一套全新的并一直演进的硬件和软件工具包Sketchtools,拿它给学生们测试和试用。学生们体验到新的实验性的工作方式,而我们则能看到Sketchtools在这些聪明人手里会有怎样的可能性。我们把这些都记录下来,带到国际会议上分享,带到客户面前展示。现在我们整个团队几乎都是由以前合作过的学生组成的。我们在学校里的工作并不能称为“研究”,因为那些都不算是学术或概念上的探索,但却非常富有策略性。
对于日常的设计工作,哪一种工具你觉得是最有影响力和最有用的呢?
Matt:在Tellart工作以及跟学生合作的时候,最美妙的事情就是使用不同的硬件和软件,像是在用不同颜色作画一样。想只用一种工具来做事,基本是不可能的。琢磨怎样把好几种工具结合起来使用,是最费脑子也是最容易出新点子的。
开源对你来讲有何意义?在你的实践中,分享和交流起到多大的作用?
Matt:我们的Sketchtools工具一直开源,并且会继续下去。我们跟一起合作的学生有个协议:你与我完全分享,我也对你毫无保留。我们在课上交流所有的观点,我们的工具包开放给任何时候参与进来的任何人。我发现,想要独自占有某些知识并且想独占鳌头的时候,会出问题,并且很快就落后于人;乐于分享的人都明白这一点。我并不真正想看到什么惊世巨作,倒是希望学生每天都有新的思考,再微小的想法都好,而不是一辈子只发一次光。当然,对客户需要遵守商业上的机密原则,这就是另一种做事方式了。开源和商业机密是平行的、互不相扰的,甚至有时还是共同促进的。
你怎样把纸上的或者视频里的概念变成一个真实的物理原型?如果可以继续这样想,你又是怎样把物理原型变成电子原型(至少带一些活动元素的那种)的?
Matt:这样说有点简单化了,但我们的确有越来越多软硬件工具,这些工具设计师使用起来并不比操作铣床或热成型机难。我们的工作台上经常堆满了Arduino、传感器、电机、铅笔稿、塑料、假毛皮,还有粘土。在教课和面对客户的时候,我发现“原型”这个词的定义有点问题:它是一个可以马上拿去制作加工的确定的模型呢,还是一个开发中的草稿模型?我们倾向于使用后一种定义,原型可以是各种阶段的草稿模型。如果说概念要使用草稿模型来开发,那我觉得铅笔、电子元件、软件和物理模型都可以用,并且是同时用到——这是试验台,设计师在上面把概念做出来(在此过程中还有不断的新发现),而不仅仅是把既定的东西搭建出来。
对于初学者,你认为什么技能是最有帮助的?
Matt:画图和拍片子。你可以说我守旧,但我坚持认为任何一个称职的专业设计师必须能画。并不是要求你画出多精美的肖像,我的意思是有能力把想法呈现在纸上,让别人明白。想得再远一些,现在软件和服务越来越抽象,数据和信息越来越无形,网络越来越复杂,所以在团队工作中,设计师如果想比较顺利地与不同领域(市场、商业巨头、制造业和技术)的人交流,那么即兴画图能力就异常重要了。交互设计师需要意识到他的产品和服务要给用户长期使用和多方面的体验,所以构建一套用于表达信息变化和交换的可视化词汇(例如故事板)是非常重要的。一位交互设计师,如果擅长画图,能搭建包括电子和软件部分的中低仿真度的草稿模型,同时还能拍拍片子,用来向别人讲解他所开发的东西在文化上和经济上是如何相关的,就差不多了。
可以略微介绍一下NADA项目吗?
Matt:NADA是Tellart的第一套工具包,最早在2001年发布,项目负责人是Brian Hinch。这个工具包让设计师比较容易地使用上Arduino的各种前身(如Teleo和Phidgets)和多种MIDI设备,并且把它们和Flash相连。2002年的时候,设计专业的学生只花了几个礼拜,就把RFID(Radio Frequency Identification Devices, 无线射频识别设备)和网页连接,并且把网络跟光和电机连上。这些工具在现在看起来没什么,但在当时对我们和学生来说帮助都很大。
只要做过网页项目的,都会对Flash比较了解。有无数的书、在线教程和课程教设计师用Flash。
Flash,特别是NADA出现时的Flash v4,可以说就是一个图形编辑环境,例如可以用它来画一个蓝色正方形,单击的时候点亮灯泡等。对设计师来讲,这比写HTML(Hypertext Markup Language,超文本标记语言)直观形象多了,在HTML里处理图还要引用目录下的图像文件。
不少学校已经把Flash相关软件纳入年度采购计划里(当过老师的都知道,一般买一套软件要申请好长时间)。
NADA使用Java写的服务器。在我们早期的交互文件里,教程是用Java和Flash做的,这促进了工程师和设计师的合作。
文件里含有一些代码,但更重要的部分是可视化设备诊断界面,可以检测接入了哪个设备,读取所有模拟输入和PWM(Pulse Width Modulation,脉冲宽度调制)输出的数值。把这些数据全都记录下来很简单,但大部分使用NADA的设计师一直开着这个窗口做实时数据跟踪。这个界面还带了个互动式的电阻计算器,你可以从传感器的输出直接观察和调整效果。
我们在众多的客户和教学项目里使用NADA。大部分情况下,NADA用来做草图和原型,但也经常在最终的成品中应用。
NADA还有NADA Mobile,苹果应用和服务器相结合,使设计师仅用JavaScript、CSS(Cascading Style Sheet,层叠样式表)和我们定制的功能来开发iPhone/iPod应用。用NADA Mobile v2可以把Arduino和苹果设备对接,还可以把模拟传感器接到苹果设备上的耳机/麦克风插孔来控制应用,硬件捡拾数据变得非常简单。我们最近的课程也包括了相关的内容,例如怎样把苹果和安卓设备连到Arduino、ZigBee以及它们的组合上,教大家通过日常的移动设备应用软件来做设计草稿。
我们还开发了若干硬件工具包,这些都是Sketchtools系列的一部分。
NADA只是用来做这一类事情的一个工具,很多其他工具在这本书里也有介绍。Sketchtools的更新版本将更关注现有的硬件和软件工具的组合,而减小从草稿开始搭建的功能,并强调记录设计摘要,促进我们、我们的客户和学生去考虑目前的可能性。我们并不是要刻意制作一些特别先进的工具,只是恰巧身处一个美好的时代,人们的想法很多,但实现想法的方法还不够。现在有很多项目都在开发这些神奇的工具,很多朋友在参与。有了这些工具,我们就可以把更多的时间用于创造美妙的体验。
我对你教的那门“开关是什么”的课程很好奇,在这个入门课程里,学生要做一些不同的交互作业和项目。
Matt:2001年我在罗德岛设计学院教一门交互设计课程,我把它的内容简化了一下,难度降低了一点,就有了这一门“开关是什么”的课程。一个学期的工业设计课的容量是远远不够去把任何一个用户界面琢磨透的。所以这门课主要是探究一下技术方面的需求、用途和意义,而并不是技术本身。我让学生去金工、木工和造型车间,尽量多捡一些好玩的边角料。每人做20份作业,尝试各种方式将人的手势或者环境参量(光、风或者水流……)用作闭合电路中的“开关”。不一定是电子上的概念,例如可以用笔在纸上画两根线,把纸对折,两根线就连起来了。在这里,“电路”是把两个部件连起来的意思。就算到现在,学生上这门课之前对Arduino等技术已经很精通,仍然能在课程里获得很多创造力方面的激发。没有任何门槛和障碍,学生自如地摆弄他们找到的材料——一捆塑料线、羊毛带子、打孔铁皮什么的。我们鼓励学生去仔细观察材质和形态,考虑尺寸和分析成分。一份作业通常在24小时内完成从初步概念到评价的全过程,速度是很关键的因素。
“开关是什么”还有一个进阶课程,缘起是我们在学校的废品堆里挖回来一堆键盘。我们把键盘的微控制器改装成这种“开关”(这次真的有些电线了,但还是没有电池),然后在Flash里捕捉按键动作。理论上,一天的教学时间,加上零成本的材料,学生是能做出一些复杂的事情的,例如“打开门能播放网页上的视频,关上门视频也就停止了”。而这个用门来控制视频播放的作业是我最喜欢的。廉价材料最大的好处是,学生用起来就跟铅笔或者黏土一样放得开,不需要小心翼翼。这些能屈能伸的粗糙材料最能激发创意。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接