本节书摘来华章计算机《交互式程序设计 第2版》一书中的第1章 ,第1.2.1节,Joshua Noble 著 毛顺兵 张婷婷 陈宇 沈鑫 任灿江 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2.1 交互的本质
那么,“交互”到底是什么呢?我们可以把它定义为双方或多方之间的信息交换。作家及电子游戏设计师Chris Crawford把交互描述为“两位及两位以上的参与者相互间听、想和说的过程”。通常谈及交互的时候,无法避开编程,因为交互中总有计算机系统或其他控制结构让人们去操控。计算机或机械系统是为 “用户”而设计的,“用户”所使用的就称为“系统”。关于交互,流行着各种各样的专有名词,例如“人机交互”、“机人交互”和“体验设计”等,事实上它们的含义大同小异:设计某种系统,为人们提供某种他们可理解的交互方式。作为一名交互设计师,你会尽力去理解用户想做什么,以及自己设计的系统应该如何反馈。你的系统可以是任何东西,例如游戏、菜单、若干连在一起的传感器和灯、一个复杂的物理交互应用等,甚至可以是其他人。
你还应该理解交互设计中的一个重要概念:反馈回路。反馈回路是指一个实体为适应内部或外部调节系统而与自身通信的过程。听起来有点复杂,其实你对此早已熟悉,例如我们的生物调节系统、流汗散热、呼吸保持氧气在体内循环、眨眼避免眼干等。当你需要更多氧气的时候,你会深呼吸,你不需要刻意“通知”身体作出这些反应,你的身体自己会去完成。为了保持体内一定的含氧量,身体发出信号,增加呼吸深度或频率,直至达到所需要的含氧量。身体向自身反馈,向自身发送信号,不断增加自身的呼吸,达到所需水平后则停止发送信号。关于反馈,类似的例子还有骑自行车,调整着平衡是不断反馈的过程,即脑部向身体发送信号,身体向脑部反馈信号,这样才能让你保持平衡。对于一个持续工作的系统而言,反馈回路非常重要,如果没有反馈,系统就不知道自己在做什么,因而也就无法进行自我调整。
我们来看看怎样从“消息发送”变为“交互”。假设其中发送方享有主动权,接收方只能收但无法给出回应,这种情况只有信息传递,谈不上“交互”。你会很容易联想到电视广播或电台广播。在合适的时间、地点,加上合适的设备,你就能看到或听到相应的信息。而广播并不考虑谁在看、谁在听,只会按它自己的时间表和节奏进行。
在此基础上,如果用户可以重新收看(听)节目,或者可以自己决定收看(听)的时间,这就增加了一个用户控制层。其实你并不是真的能和一本书或是一个静态网页进行交互,甚至对于大多数动态网站你也做不到,但你可以控制浏览的速度,可以重新阅读那些你没有看懂的内容。这其实就是导向传播。它向你提供了一系列预设的内容,让你选择要看的部分。滚动页面、点开链接、快进和回退等都属于导向传播的手段。
我们再进一步,向用户提供一些方法去完成一个任务或者向系统输入数据,真正改变系统的状态,同时也制定了一些方法,让系统去反馈用户的动作。这样,你就建立了交互。反应式交互是交互的开始,它让你开始考虑用户要做什么,你的系统或对象应该如何反应。对于用户的任何动作,系统或对象都必须作出反应,就算无法给出用户期望的反应,也必须告诉用户“我不明白”或者其他错误信息。这些功能可以在一个系统内实现。这一类的应用程序不少是用来监控系统自身状态的,例如检查系统中的某一个属性当前的状态,或者确认仓库里箱子的数量。如果把这些套用在两个人之间的交互,你可能会想到父母向孩子给出指令。
再复杂一点,这一次系统持续做着一件事,而用户可以通过向系统输入信息来控制和调节这件事。很多工业监控系统就是这样工作的,同样的还有游戏引擎的主要部分及很多其他交互装置。建立这一类交互的难度在于,确保用户在任何时候都清楚系统正在做什么,知道他们可以怎样改变系统,并且明白他们对系统任何一方面的改变都会影响到其他方面。再把这些套用到两个人之间的交互,这回是父母教孩子走路,随时留意着孩子会不会摔倒。另一个例子就是调节系统,在用户执行任务时调节他们。这里,双方之间并没有真正的沟通,因为调节系统并没有给出反馈,它只是在改变对方的行为,当中还包括连续系统。系统也可以自己完成此类任务,它能实时监控和调整正在进行的过程。
以上最后提到的那种交互模式与学习模式的交互类似,但要稍微复杂一点。系统同样在持续运行;用户可以看到系统的内部,但不再是调整自己的行为,而是从输出数据中学习。很多监控系统就是这样运作的。系统让用户看到相关的数据,以此让用户使用和了解处理的过程。当然,系统还是没有与用户交谈,它只是在运转的同时向用户报告信息。用户的操作受系统报告的驱使,但没有被系统改变。这就是之所以把它称为“学习模式”的原因。这种模式下,系统和用户都更善于自我学习,当然两者所使用的方式有所不同。
现在我们来看一个更复杂的交互模式——管理型模式。用户和系统之间双向沟通信息,并且系统允许用户执行另外一个任务。真正的复杂性从这里开始。用户与系统通信,让系统执行某些任务。系统回应用户,让用户继续执行另外一个任务。系统依旧运行,用户也依旧工作,就算出现了用户的反馈回路,一切都依旧进行。从金融行业到医疗领域,很多实时监控应用程序就是这样的系统。
最后,我们来看看最复杂的交互模式:真正的对话。这在人和人之间的交流再寻常不过,但若发生在人和机器之间就是另一回事了,因为对话的构成是很复杂的。只要想一想我们如何通过字词、音调、面部表情、身体姿态、潜台词和上下文来相互对话,就能明白要有巨大的信息量被迅速交换和处理。当然,大部分人机对话远没有这般复杂。
一个简单但典型的例子是使用移动设备来导航。当用户频繁地移动并向设备提出请求时,设备就不断地更新位置信息,向用户反馈以及指出方向。实现对话模式的交互是交互设计和工程中最紧迫的挑战之一。各类模式的交互帮助用户完成不同的事情,实现起来各有难度。我们可以根据用户类型、任务目的和交互发生的语境来选择合适的交互模式。