当前位置: 首页 > news >正文

《交互式程序设计 第2版》一1.5 数据交换与探索

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

1.5 数据交换与探索

交互设备的任务、目标和实现其交互的方式都很重要。与之前提到的一样,下面的分类并不是一个交互作品分类的完整清单,只是列举了一些最常见主题,为本书后面的内容提纲挈领一下。
支持数据可视化
我们身处的社会越来越以信息为中心,每天都有大量的数据在处理,数据可视化就变得越来越重要了。结构良好的数据可视化是一种有力的工具,它不仅让用户理解独立的数据点,还让用户明白数据点之间的关系,检测数据模式,甚至重新配置数据,或将其置于新的语境中。数据可视化不是向用户单方面灌输信息,而是通过和用户对话的方式快速指出内容,提高用户处理和整合新信息的能力。
设计师兼作家的Frank van Ham 指出:“它们应该是大规模的协作……重点不是分析而是沟通……应该是可视化的并由终端用户驱动。”数据可视化的目标是为用户构建数据的视图或图景,让用户更好地理解数据。Ben Fry的作品通过美妙的图表,让观者更快、更充分地理解蕴藏在数据中的事物之间的关系。这是将美学考虑结合到认知与心理学研究所得到的结果。Jonathan Harris和Sep Kamvar在作品“I Want You to Want Me ”(http://iwantyoutowantme.org)中,检索在线数据,利用检索结果生成交互图像。尽管它仍属于数据可视化,比起通常出现在标准视图中的图形-对话交互,这件作品更富动态甚至有些异想天开,但它带来的是具有深度和饱含意义的数据解析和分析。
用户的交互过程实则是对数据的提炼、比对、挖掘或叙事。设计数据及其交互时,我们不仅要考虑呈现什么数据,而且要考虑用户是怎样解释数据的,他们想怎样使用数据并与之交互。当数据的视图及视图的呈现清晰地相关联,交互就变得容易得多。例如,数据和滤波器有清晰的视觉呈现,用户就能轻松明白是对什么数据滤波,知道怎样改变它。
组织任务
有些交互的有趣之处在于它们帮我们达成的事情。如何组织任务、行为和离散的事物是界面设计里必须考虑的重点。回顾机器和计算机的界面发展历史,你会发现界面在组织任务、应用、信息和动作方面的演进。当下无处不在的桌面模式,就是把人的自然认知能力(例如在一个空间里整理物件)和办公室人员熟悉的桌面工作方式综合起来。
交互设计中的一个挑战是如何高效地把工作区域和组织工具各安其所,解决传统的桌面环境的问题。计算无处不在,用户希望在多处使用程序和数据。考虑到现在的人们与环境发生交互的场景,在小尺寸屏幕上甚至没有屏幕的情况下建立交互,这个需求越来越显著。
一些值得探究的话题包括,利用例如多点触摸屏这样现成的新工具开发新型桌面环境,创造新工具让用户创制个性化的专属界面,构建数据可视化界面以及与可视化相关的应用。
此类交互应用更多地从实用性和功能性方面考虑,让用户完成任务、整合信息和保存信息。当然,这并不意味着它们要从功能上复制一个操作系统,事实上它们借鉴了操作系统中的交互词汇。这方面具颠覆性的例子有Adrian Ward的Auto-Illustrator(http://www.adward.com/wiki/ckfault/read/software.net)。
创造体验
不是所有的交互设计都基于传统的应用模式。交互之中一个最常见又最吸引人的模式是所谓的体验式交互,包括电脑游戏、互动绘画和炫目的图形展示等,没有指定的实际用途,有时仅仅是为了娱乐。这一类的交互经常在音频和图像之间建立新的联系,创造的场景甚至能娱乐用户,或者含有富娱乐性的交互。体验式交互在很多电脑游戏中相当常见,用户在游戏中扮演角色并且能从角色的视角看世界。这类游戏中的交互多是目标指向,指向游戏的下一关、杀敌或者加分。很多交互装置使用类似的模式,很好玩,但缺乏游戏中的目标指向特质,取而代之的是制造景观,或者让观者摆弄产生声画的引擎。这一类交互的目的通常就是单纯的娱乐和吸引眼球。
游戏和交互装置在使用时会不断地调用应用程序,而在此过程中,它们经常会在不同的视图、视角和模式之间快速切换。这一点对建筑漫游方面的应用同样适用,例如展示进入建筑物所看到的效果或者数据可视化。游戏风格的界面很常见,例如从第一人称视角观看三维世界,或者在用户自主控制之下观看二维世界。这里还涉及环境的生成,能响应用户的动作而生成,而当用户不活跃时,也可以独立生成。交互装置和其他趣味性较强而任务取向较弱的作品,有时还使用“倒媒体”,例如画出一个声音、用声音制作图像、把实际的物体变成虚拟,以上反之亦然。
促成用户间合作
艺术作品中的交互最不需要数据驱动也最不需要依托于一个虚拟的世界。它可以由多名用户的协同参与来实现。协同可以是非常直接的方式,就像大家在白板上写写画画,分享和讨论事情;也可以是难以预计的试验方式,其中一位用户的输入添加到其他用户的输入,而这样的动作是难以预测的。从可预测的协同的交互到不可预测的不协同的交互,这方面的话题非常丰富。而定位游戏则是另一种靠用户间合作驱动的交互式应用程序,游戏由用户的方位驱动。不少基于网络的应用程序也利用用户间合作来驱动交互。这一类系统促使用户间的通信,保证消息在用户之间的收发,而不是像单人游戏那样,系统自己产生消息和反馈给用户。
这一类应用程序可以使用基于聊天或出场的场景,我们可以在一些最近很流行的大型多人游戏看到这种场景;或者创造真实的场景和表现,为每位用户带来真实的体验。适当提示用户,让他们知道有多少用户一起参与,他们的举动如何影响环境和其他用户,交互就会变得更加吸引人。
控制机器
Tom Igoe是我喜欢的一位老师、作家和工程师,他曾写道:“计算机应该以任何物理形态存在以满足我们的计算需求。”计算不仅局限在计算机本身或传统的计算机界面(显示屏),事实上,交互设计和艺术作品有丰富得多的形态。利用Arduino,我们可以轻松地让计算机控制真实的机器。机器可以完成简单如开关电灯的任务,也可以做到复杂如控制机器人的事情。机器可由单人或多人控制;或者是可以接受反馈的,通过程序控制它对用户、观者或真实环境的响应。
对机器的控制有时是任务导向的,对每个用户的动作的响应和效果都有严格的规定;有时是趣味性的,例如用户协作应用。在趣味性强的应用程序里,对用户的控制可以非常宽松,即在摆弄装置的过程中,由用户自己去发现如何控制机器。而在任务导向的情况下,控制的标识和结构应十分明显和清晰。
用于表演
一个应用程序可用在表演中,协助演出或者加强演出效果。例如电吉他被改装为一个全新的复杂的音乐创作界面。作为表演或交互的方式,交互界面或工具由表演者或观众驱动。比较有趣的例如表演者和观众一起控制系统,当然,这需要一些用户培训以确保观众知道他们该做什么。与通常的舞台演出工具不同,这类交互工具不要求概念上的简单。它们让用户在演出中创造出新元素,实现远程控制,并让观众也成为表演者。
创造环境
建筑师们开始探索所谓的“反应式建筑”,把计算技术结合到建筑实践中,创造出的建筑物和环境能对用户、环境自身的内在因素以及外部的指令作出反应。这里,反馈系统的模型非常重要。环境通过传感器或计时器作自我监控,知道什么时候改变或保持状态。最简单的情况是,计时器通知房子开关灯,温度传感器用来维持温度,动作传感器可以检测对象的出现,湿度传感器控制抽湿机。如果使用更复杂的传感器和系统,你还可以跟踪空间里的运动,这时你可以在运动对象上加上标签,使用摄像头捕捉图像,使用麦克风捡拾声音和振动,或者还会用到无线电波。系统根据捕捉和捡拾回来的数据改变环境,例如让环境变得更舒适、声音更响或者其他适当的调整。很多建筑师和技术人员正从事着这样的空间和建筑设计,由用户通过指令设定空间的使用方式,或使空间自身更富交互性。这样的空间通常被称为“智能屋”或“使能建筑”,是建筑师和工程师的重要研究课题。计算技术不局限在室内空间,公园、步行径、广场或街道等户外空间,都可以被这些有趣的技术介入,使环境好玩、有益并能启发思维。要重点考虑的是,某个应用介入空间是否合适,用户如何参与或控制交互。这一点对公共空间尤其重要,因为空间中的每个人有可能参与交互。
讲述故事
用交互的方式讲故事或叙事是最近交互设计领域的一个有趣主题。借助数据可视化和游戏领域的技术,这一类作品通常依托于界面,让用户控制叙事的进展和方向。尽管借用了游戏和可视化里的概念,但由叙事带来的一系列挑战更多的是电影制片人和作者的话题,而不是工程方面的考虑。

相关文章:

  • 数据库驱动
  • HID Global推出光学安全媒体(HID)Multitech卡
  • 【观点】如何成为Python高手
  • SDN对传统网络的变革和提升
  • 【观点】停止编程
  • 着眼大数据 预测未来趋势
  • 烟草网站如何实现防攻击、防病毒、防篡改
  • NB-IoT将给物联网带来革命性变化
  • 金山戴尔达成战略合作协议 春节后宣布
  • ASP.NET Aries JSAPI 文档说明:AR.Utility
  • C#公历转农历算法
  • 熊本又地震,索尼CMOS传感器厂再次停工
  • UNIX上C++程序设计守则(信号和线程)(下)
  • 可能收购Brocade IP业务的黑马:Arris
  • 悼念乔布斯
  • 网络传输文件的问题
  • [笔记] php常见简单功能及函数
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • CSS盒模型深入
  • HTTP请求重发
  • LeetCode算法系列_0891_子序列宽度之和
  • Mysql5.6主从复制
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • SQL 难点解决:记录的引用
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • VuePress 静态网站生成
  • windows下使用nginx调试简介
  • 产品三维模型在线预览
  • 彻底搞懂浏览器Event-loop
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 好的网址,关于.net 4.0 ,vs 2010
  • 强力优化Rancher k8s中国区的使用体验
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ###项目技术发展史
  • #LLM入门|Prompt#3.3_存储_Memory
  • $$$$GB2312-80区位编码表$$$$
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)Linux——Linux常用指令
  • (简单) HDU 2612 Find a way,BFS。
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)mysql_MYSQL(三)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .net 托管代码与非托管代码
  • .net快速开发框架源码分享
  • :“Failed to access IIS metabase”解决方法
  • @DS 多数据源 + @Transactional(rollbackFor = Exception.class) 导致@DS 多数据源没法使用