版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
人機(jī)交互技術(shù)第一章
人機(jī)交互概述1.1人機(jī)交互的概念1.1.1為什么要研究人機(jī)交互
自從上個(gè)世紀(jì)40年代計(jì)算機(jī)誕生以來(lái),計(jì)算機(jī)和圍繞計(jì)算機(jī)的信息產(chǎn)業(yè)蓬勃發(fā)展。當(dāng)前,制造業(yè)、IT業(yè)、汽車(chē)行業(yè)等許多產(chǎn)業(yè)都有計(jì)算機(jī)的身影。人不但要跟電腦、平板、手機(jī)等看得見(jiàn)摸得著的計(jì)算機(jī)進(jìn)行交互,而且要和嵌入到汽車(chē)、電視、微波爐等機(jī)器內(nèi)部的計(jì)算機(jī)進(jìn)行交互。現(xiàn)在很多人在研究人機(jī)交互,優(yōu)秀的設(shè)計(jì)可以提高人們的工作效率,使人們的工作生活更加簡(jiǎn)潔,更加方便。什么是人機(jī)交互
人機(jī)交互(Human-ComputerInteraction,簡(jiǎn)稱(chēng)HCI)是一門(mén)研究計(jì)算機(jī)系統(tǒng)與用戶之間交互關(guān)系的學(xué)問(wèn)。美國(guó)計(jì)算機(jī)協(xié)會(huì)ACM人機(jī)交互興趣小組(SpecialInterestGrouponComputer–HumanInteraction,簡(jiǎn)稱(chēng)SIGCHI)給出了人機(jī)交互的定義,人機(jī)交互是關(guān)于設(shè)計(jì)、評(píng)價(jià)和實(shí)現(xiàn)供人使用的交互式計(jì)算系統(tǒng),以及圍繞這些方法的主要現(xiàn)象進(jìn)行研究的一門(mén)學(xué)科。
人機(jī)交互是與認(rèn)知心理學(xué)、人機(jī)工程學(xué)、多媒體技術(shù)、虛擬現(xiàn)實(shí)技術(shù)等密切相關(guān)的綜合學(xué)科,可以從不同的角度(計(jì)算機(jī)科學(xué)、機(jī)器和人)來(lái)研究人機(jī)交互。例如從計(jì)算機(jī)科學(xué)的角度,人機(jī)交互的焦點(diǎn)是交互,尤其是單個(gè)或多個(gè)用戶與一個(gè)或多個(gè)計(jì)算機(jī)的交互,以及通過(guò)計(jì)算機(jī)系統(tǒng)的人際交互;而從機(jī)器的觀點(diǎn),計(jì)算機(jī)可能是獨(dú)立運(yùn)作的計(jì)算機(jī),也可能是嵌入式計(jì)算機(jī)器,比如作為太空駕駛員座艙或者微波爐的一部分。從人類(lèi)用戶的角度看,需要考慮分布式系統(tǒng),計(jì)算機(jī)輔助通訊,或依靠不同系統(tǒng)進(jìn)行協(xié)同工作等特性。因此,人機(jī)交互既研究機(jī)械裝置,也研究人的因素,人機(jī)交互是當(dāng)代技術(shù)發(fā)展的一個(gè)重要支撐領(lǐng)域。人機(jī)交互的簡(jiǎn)史發(fā)展是人類(lèi)亙古不變的主題,一個(gè)社會(huì)發(fā)展的關(guān)鍵在于其核心生產(chǎn)工具的發(fā)展。計(jì)算機(jī)作為新時(shí)代的核心生產(chǎn)工具,如何高效地與之交互一直是業(yè)界的研究熱點(diǎn)。經(jīng)過(guò)數(shù)十年的實(shí)踐和發(fā)展,人機(jī)交互理念、技術(shù)和外圍設(shè)備逐漸由萌芽走向發(fā)展和成熟。
手工操作和命令行交互階段ENIAC是一個(gè)龐然大物,重30余噸,占地約170平方米,包含18000只電子管。研究者通過(guò)手工開(kāi)閉計(jì)算機(jī)上的開(kāi)關(guān)作為輸入,通過(guò)機(jī)器上指示燈的明暗作為輸出。如圖所示,在埃尼阿克計(jì)算機(jī)中,每個(gè)功能表上有多個(gè)開(kāi)關(guān),用戶通過(guò)操作功能表上的開(kāi)關(guān)進(jìn)行數(shù)據(jù)輸入。工作人員在設(shè)置ENIAC的一個(gè)功能表上的開(kāi)關(guān)組早期的五孔紙帶上世紀(jì)50年代,人們開(kāi)始使用穿孔紙帶與計(jì)算機(jī)進(jìn)行交互。穿孔紙帶大約一寸寬,中間的一排小孔用來(lái)確定位置,兩側(cè)的大孔用來(lái)表示信息,穿孔或不穿孔表示1和0,計(jì)算機(jī)指令用大孔中的若干個(gè)孔表示,一條簡(jiǎn)單的程序通常都需要幾米長(zhǎng)的紙帶,如圖所示。但是,這種交互方式輸入輸出速度慢,可靠性低,逐漸被淘汰。
DECVT100,一個(gè)廣泛應(yīng)用的計(jì)算機(jī)終端(1978)
1956年,MIT開(kāi)始研究使用鍵盤(pán)向計(jì)算機(jī)輸入信息。60年代中期起,基于鍵盤(pán)的命令行接口成為大多數(shù)計(jì)算機(jī)的主要交互方式。操作人員在命令行界面中輸入命令,界面接收命令行,然后把命令行文字翻譯成相應(yīng)的系統(tǒng)功能。整個(gè)70年代,甚至直到80年代,這種交互方式一直在持續(xù)使用。大家所熟知的Unix操作系統(tǒng)、微軟的DOS系統(tǒng)、以及蘋(píng)果的DOS系統(tǒng)都是采用命令行的方式。
圖形化用戶界面階段進(jìn)入70年代,計(jì)算機(jī)的使用范圍日趨廣泛,人機(jī)交互的設(shè)計(jì)理念隨之前進(jìn)。易用性(Usability)、用戶友好逐漸成為人機(jī)交互設(shè)計(jì)的首要考慮要素,人機(jī)交互的理念進(jìn)入以用戶為中心(User-CenteredDesign,簡(jiǎn)稱(chēng)UCD)的時(shí)代。道格拉斯?恩格爾巴特拿著他發(fā)明的鼠標(biāo)1968年,Stanford大學(xué)的道格拉斯·恩格爾巴特(DouglasEnglebart)博士發(fā)明了世界上第一個(gè)滑動(dòng)鼠標(biāo),如圖所示。設(shè)計(jì)的初衷是為了使計(jì)算機(jī)的操作更加簡(jiǎn)捷,代替在鍵盤(pán)上敲擊繁瑣的指令。恩格爾巴特制作的鼠標(biāo)是一只小木頭盒子,工作原理是由它底部的小球帶動(dòng)樞軸轉(zhuǎn)動(dòng),從而使得內(nèi)部的變阻器改變阻值來(lái)產(chǎn)生位移訊號(hào),經(jīng)計(jì)算機(jī)處理,鼠標(biāo)的移動(dòng)轉(zhuǎn)化成了屏幕上的光標(biāo)的移動(dòng)。鼠標(biāo)極大地改善了人機(jī)之間的交互方式,這個(gè)發(fā)明被電氣與電子工程師協(xié)會(huì)(InstituteofElectricalandElectronicEngineers,簡(jiǎn)稱(chēng)IEEE)列為計(jì)算機(jī)誕生50年來(lái)最重大的事件之一。XeroxPalo于70年代中后期研制出原型機(jī)Star,形成了以窗口、圖標(biāo)、菜單和指示器為基礎(chǔ)的圖形界面,也稱(chēng)為WIMP界面,Apple公司最先采用了這種圖形界面。1983年,蘋(píng)果公司開(kāi)發(fā)的Lisa桌面電腦配置了鼠標(biāo),并首次采用了圖形化的用戶界面(GraphicalUserInterface,簡(jiǎn)稱(chēng)GUI)。Lisa創(chuàng)造性地采用了桌面“隱喻(Metaphor)”,使用了位映射(bitamp)、窗口(window)、圖符(icon)等圖形化元素來(lái)代表對(duì)應(yīng)的操作,用戶可通過(guò)鼠標(biāo)點(diǎn)擊方便地與計(jì)算機(jī)進(jìn)行交互,如圖所示。Lisa由于售價(jià)高,市場(chǎng)接受度不高,但其成就了之后的蘋(píng)果Macintosh計(jì)算機(jī)。這種基于鼠標(biāo)便捷操作和直觀的圖形化界面的交互方式成為人機(jī)交互進(jìn)化的歷史性變革。(a)Lisa電腦
(b)Lisa的屏幕自然人機(jī)交互階段80年代末,多媒體技術(shù)繁榮發(fā)展。聲卡、圖像卡等硬件設(shè)備的發(fā)明和實(shí)現(xiàn)使得計(jì)算機(jī)處理聲音及視頻圖像成為可能,多媒體輸入輸出設(shè)備如揚(yáng)聲器、話筒和攝像頭等逐漸為人機(jī)交互所用,如圖所示。人機(jī)交互的內(nèi)容更加豐富有趣,用戶能以聲、像、圖、文等多種媒體信息方式與計(jì)算機(jī)進(jìn)行信息交流。用戶利用多媒體技術(shù)與計(jì)算機(jī)進(jìn)行生動(dòng)的交互自然人機(jī)交互輸入設(shè)備的進(jìn)展
自然人機(jī)交互更加注重用戶的個(gè)人體驗(yàn),以人為中心。在交互輸入方面,從最開(kāi)始的手工操作開(kāi)關(guān)、鼠標(biāo)鍵盤(pán)輸入,發(fā)展到當(dāng)前的體感交互等自然交互方式。1972年,NolanBushnell發(fā)明了第一個(gè)交互電子游戲Pong,首次將操控技術(shù)運(yùn)用到了人機(jī)交互系統(tǒng)中。1977年,ToraDefanti和DanielSandin開(kāi)發(fā)了一套手套式傳感器系統(tǒng)SayreGlove,用戶只需要帶上這樣特殊的手套就可以向計(jì)算機(jī)輸入特定指令。交互顯示設(shè)備的進(jìn)展
在交互顯示方面,人們追求身臨其境的感覺(jué)。1838年,CharlesWheatstone研究發(fā)現(xiàn)人類(lèi)大腦是通過(guò)處理左右眼看到的不同視角圖像來(lái)產(chǎn)生三維感覺(jué)的,這一發(fā)現(xiàn)奠定了現(xiàn)代所有立體顯示技術(shù)的理論基礎(chǔ),包括裸眼3D、眼鏡式3D、沉浸式VR等。1961年,由Philco公司研發(fā)的Headsight問(wèn)世,這是世界上第一款頭戴式顯示器,同時(shí)該設(shè)備首次融合了頭部追蹤功能,Headsight主要用于隱秘信息的查看。1985年,美國(guó)NASA研發(fā)出LCD光學(xué)頭戴顯示器,同時(shí)融合了頭部、手部追蹤功能,可實(shí)現(xiàn)更加沉浸的體驗(yàn),其主要用于太空作業(yè)的模擬訓(xùn)練等。人機(jī)交互的新技術(shù)近年來(lái),隨著機(jī)器視覺(jué)、人工智能、模式識(shí)別技術(shù)的發(fā)展,以及相應(yīng)的計(jì)算機(jī)軟硬件技術(shù)的進(jìn)步,以手勢(shì)識(shí)別、動(dòng)作識(shí)別、語(yǔ)音識(shí)別等為基礎(chǔ)的自然人機(jī)交互技術(shù)不斷涌現(xiàn)。交互的模式,也從單一通道輸入向多通道輸入改變,最終達(dá)到智能和自然的目的。多點(diǎn)觸控多點(diǎn)觸控技術(shù)是一種允許多用戶、多手指同時(shí)傳輸輸入信號(hào),并根據(jù)動(dòng)態(tài)手勢(shì)進(jìn)行實(shí)時(shí)響應(yīng)的新型交互技術(shù)。該項(xiàng)技術(shù)采用裸手作為交互媒介,使用電學(xué)或者視覺(jué)技術(shù)完成信息的采集與定位。
多點(diǎn)觸控技術(shù)經(jīng)過(guò)了多年的積累和發(fā)展。該系統(tǒng)在大屏多點(diǎn)觸控系統(tǒng)設(shè)計(jì)方面成本低、敏感度高,而且使用計(jì)算機(jī)視覺(jué)技術(shù)具有較好的擴(kuò)展性。其系統(tǒng)效果圖如下圖所示,用戶可以通過(guò)單手或者多手直接操控電腦。單手觸控(左)與雙手觸控(右)
手勢(shì)交互
手勢(shì)交互是指人通過(guò)手部動(dòng)作表達(dá)特定的含義和交互意圖,通過(guò)具有符號(hào)功能的手勢(shì)來(lái)進(jìn)行信息交流和控制計(jì)算機(jī)的交互技術(shù)。例如,可以采用如下圖所示的生活中的6種手勢(shì)類(lèi)型,將其語(yǔ)義分別定義為確定/抓取、返回/釋放、鎖定/解鎖、右選、待轉(zhuǎn)/移動(dòng)、左選操作指令。
手勢(shì)交互是一種新興的交互技術(shù),其技術(shù)核心是手勢(shì)識(shí)別。根據(jù)識(shí)別對(duì)象可將手勢(shì)識(shí)別技術(shù)分為靜態(tài)手勢(shì)識(shí)別和動(dòng)態(tài)手勢(shì)識(shí)別。數(shù)據(jù)手套是一種應(yīng)用較為廣泛的手勢(shì)識(shí)別方式。右圖形象地描述了數(shù)據(jù)手套的結(jié)構(gòu)。
手勢(shì)識(shí)別的另一種方式是通過(guò)攝像頭采集手勢(shì)數(shù)據(jù)。這種方式下,人不需要穿戴額外的手套,裸手即可與計(jì)算機(jī)互動(dòng)。如下圖所示,LeapMotion主要由兩個(gè)攝像頭和3個(gè)紅外LED組成。LeapMotion的組成結(jié)構(gòu)(左)與圖像效果(右)
人體動(dòng)作識(shí)別
人體動(dòng)作是人表達(dá)意愿的重要信號(hào),包含了豐富的語(yǔ)義。人體動(dòng)作是指包括頭、四肢、軀干等人的各個(gè)身體部分在空間中的姿勢(shì)或者運(yùn)動(dòng)過(guò)程。下圖展示了基于人體動(dòng)作的人機(jī)交互應(yīng)用。動(dòng)作分析的人機(jī)交互應(yīng)用
人體動(dòng)作分析是人機(jī)交互交互系統(tǒng)的重要支撐技術(shù),是一個(gè)多學(xué)科交叉的研究課題,使用了數(shù)學(xué)建模、圖形圖像分析、模式識(shí)別、人工智能等知識(shí),具有重要的理論研究?jī)r(jià)值。一個(gè)完整的人體動(dòng)作分析過(guò)程主要包括動(dòng)作捕捉、動(dòng)作特征描述和動(dòng)作分類(lèi)識(shí)別三大部分。與其他交互手段相比,人體動(dòng)作交互技術(shù)無(wú)論是硬件還是軟件方面都有了較大的提升,交互設(shè)備向小型化、便攜化、使用方便化等方面發(fā)展。
語(yǔ)音交互
語(yǔ)音交互是人以自然語(yǔ)音或機(jī)器合成語(yǔ)音同計(jì)算機(jī)進(jìn)行交互的綜合性技術(shù)。機(jī)器通過(guò)識(shí)別和理解把語(yǔ)音信號(hào)轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令,人通過(guò)語(yǔ)音與機(jī)器進(jìn)行對(duì)話交流,讓機(jī)器明白用戶的交互意圖。下圖給出了語(yǔ)音交互的示例商業(yè)產(chǎn)品。(a)AppleSiri
(b)amazonecho
語(yǔ)音交互需要對(duì)語(yǔ)音識(shí)別和語(yǔ)音合成進(jìn)行研究,還要對(duì)人在語(yǔ)音通道下的交互機(jī)理、行為方式等進(jìn)行研究。語(yǔ)音交互過(guò)程包括四部分:語(yǔ)音采集、語(yǔ)音識(shí)別、語(yǔ)義理解和語(yǔ)音合成。語(yǔ)音采集完成音頻的錄入、采樣及編碼;語(yǔ)音識(shí)別完成語(yǔ)音信息到機(jī)器可識(shí)別的文本信息的轉(zhuǎn)化;語(yǔ)義理解根據(jù)語(yǔ)音識(shí)別轉(zhuǎn)換后的文本字符或命令完成相應(yīng)的操作;語(yǔ)音合成完成文本信息到聲音信息的轉(zhuǎn)換。
其它新興的交互方式
人類(lèi)的交互方式還有很多,當(dāng)前眼球、意念、表情、唇讀等更多的新興手段被引入到人機(jī)交互的領(lǐng)域。這些方式針對(duì)不同的應(yīng)用和人群,在特殊情況下更為有效。人機(jī)交互設(shè)計(jì)的標(biāo)準(zhǔn)、原則和指導(dǎo)方針人機(jī)交互設(shè)計(jì)的標(biāo)準(zhǔn)(1)ISO的人機(jī)工程學(xué)技術(shù)委員會(huì)ISO9241包含多個(gè)部分,對(duì)人機(jī)交互、以人為中心的設(shè)計(jì)、用戶界面、用戶體驗(yàn)、易用性等都有描述。右表是其各個(gè)子系列的基本標(biāo)準(zhǔn)號(hào)和標(biāo)題。
近年來(lái),以人為中心的人機(jī)交互設(shè)計(jì)是人機(jī)交互的一個(gè)研究熱點(diǎn)。以人為中心的設(shè)計(jì)方法應(yīng)該遵循以下原則。
(1)設(shè)計(jì)基于對(duì)用戶、任務(wù)和環(huán)境的明確的理解。(2)用戶參與整個(gè)設(shè)計(jì)和開(kāi)發(fā)。(3)設(shè)計(jì)由以用戶為中心的評(píng)估驅(qū)動(dòng)和改進(jìn)。(4)過(guò)程是不斷迭代的。(5)設(shè)計(jì)表達(dá)了全部用戶體驗(yàn)。(6)設(shè)計(jì)團(tuán)隊(duì)包括多學(xué)科的技能和視角。W3C的多通道交互工作組
2002年,萬(wàn)維網(wǎng)聯(lián)盟W3C成立多通道交互工作組。工作組的目標(biāo)是制定標(biāo)準(zhǔn)以使得種類(lèi)繁多的通道之間能夠交互。工作組描述了多通道交互生態(tài)系統(tǒng)一個(gè)典型示例,由多個(gè)框架組件構(gòu)成,如下圖所示。多通道交互生態(tài)系統(tǒng)示例
人機(jī)交互的原則和指導(dǎo)方針
Shneiderman的界面設(shè)計(jì)八個(gè)黃金法則:(1)盡力保持一致性(2)使用戶能用快捷鍵操作頻繁使用的項(xiàng)目(3)提供有幫助的反饋信息(4)會(huì)話和流程設(shè)計(jì)要走向一個(gè)完結(jié)(5)提供防止用戶出錯(cuò)的機(jī)制,并提供簡(jiǎn)潔的錯(cuò)誤提示信息(6)允許便捷的撤銷(xiāo)操作(7)給用戶掌控感(8)減少短時(shí)記憶負(fù)擔(dān)Nilesen的10個(gè)易用性啟發(fā)式方法:(1)系統(tǒng)狀態(tài)可見(jiàn)(2)系統(tǒng)和真實(shí)世界相匹配(3)撤銷(xiāo)重做原則(4)一致性原則(5)防錯(cuò)原則(6)易取原則(7)靈活高效原則(8)易快速瀏覽原則(9)容錯(cuò)原則(10)人性化幫助原則PeterMorville的用戶體驗(yàn)蜂巢圖:
在書(shū)中,PeterMorville給出了用戶體驗(yàn)蜂巢圖,對(duì)人機(jī)交互設(shè)計(jì)很有指導(dǎo)意義,如左圖所示。用戶體驗(yàn)蜂巢圖自然人機(jī)交互設(shè)計(jì)的指導(dǎo)方針我們認(rèn)為以下幾點(diǎn)方針更符合自然人機(jī)交互系統(tǒng)設(shè)計(jì)思想。(1)非接觸式的體感交互(2)多通道上下文感知融合(3)虛擬與現(xiàn)實(shí)的交互映射(4)注重反饋和限制因素(5)考慮通用性和擴(kuò)展性THANKYOU人機(jī)交互技術(shù)人機(jī)交互概述和發(fā)展
人機(jī)交互的研究?jī)?nèi)容1
人機(jī)交互的發(fā)展歷史2
最新應(yīng)用3總結(jié)4目錄CONTENTS
人機(jī)交互的研究?jī)?nèi)容1人機(jī)交互(Human-ComputerInteraction,HCI)是關(guān)于設(shè)計(jì)、評(píng)價(jià)和實(shí)現(xiàn)供人們使用的交互式計(jì)算機(jī)系統(tǒng),且圍繞這些方面的主要現(xiàn)象進(jìn)行研究的學(xué)科。人機(jī)交互、人機(jī)互動(dòng)(英文:Human–ComputerInteraction或Human–MachineInteraction,簡(jiǎn)稱(chēng)HCI或HMI),是一門(mén)研究系統(tǒng)與用戶之間的交互關(guān)系的學(xué)問(wèn)。人機(jī)交互的研究?jī)?nèi)容傳統(tǒng)的人機(jī)交互(HumanComputerInteraction,HCI)是研究運(yùn)用什么樣的開(kāi)發(fā)原理及方法,讓人們可以方便地使用計(jì)算機(jī)系統(tǒng)的學(xué)科。20世紀(jì)90年代后期以來(lái),隨著高速處理芯片,多媒體技術(shù)和InternetWeb技術(shù)的迅速發(fā)展和普及,人機(jī)交互的研究重點(diǎn)放在了智能化交互,多模態(tài)(多通道)-多媒體交互,虛擬交互以及人機(jī)協(xié)同交互等方面,也就是放在以人為中心的人機(jī)交互技術(shù)方面。人機(jī)交互的發(fā)展歷史,是從人適應(yīng)計(jì)算機(jī)到計(jì)算機(jī)不斷地適應(yīng)人的發(fā)展史。簡(jiǎn)單來(lái)理解就是研究用戶和計(jì)算機(jī)之間交互的學(xué)科,如何讓人們更加方便高效的運(yùn)用計(jì)算機(jī)技術(shù)。新媒體技術(shù)的逐步發(fā)展,豐富了HCI這一領(lǐng)域的研究?jī)?nèi)容,從傳統(tǒng)的人與計(jì)算機(jī)鍵盤(pán)、鼠標(biāo)從而控制顯示內(nèi)容和文本的互動(dòng),轉(zhuǎn)變?yōu)楦嗟淖匀唤换バ问?,體現(xiàn)形態(tài)也從二維擴(kuò)展到三維可視化的終端顯示。在最初,很多學(xué)者和專(zhuān)家認(rèn)為HCI可以通過(guò)網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站設(shè)計(jì)來(lái)體現(xiàn),逐漸的發(fā)展至今,我們可以通過(guò)虛擬現(xiàn)實(shí)(VR)技術(shù)、增強(qiáng)現(xiàn)實(shí)(AR)技術(shù)、混合現(xiàn)實(shí)(MR)技術(shù)以及影像現(xiàn)實(shí)(CR)技術(shù)作為技術(shù)表現(xiàn)形式的手段,基于計(jì)算機(jī)及網(wǎng)絡(luò)產(chǎn)生的內(nèi)容和相對(duì)計(jì)算機(jī)及網(wǎng)絡(luò)現(xiàn)實(shí)所產(chǎn)生的內(nèi)容,針對(duì)內(nèi)容、渠道的接受主體(人或其他物體),形成主體、內(nèi)容、渠道這三個(gè)要素構(gòu)成的人機(jī)交互產(chǎn)品。人機(jī)交互的研究?jī)?nèi)容筆式交互設(shè)備視覺(jué)交互設(shè)備虛擬環(huán)境中的交互
觸覺(jué)交互設(shè)備課程內(nèi)容介紹課程內(nèi)容KT點(diǎn)課程內(nèi)容KT點(diǎn)
人機(jī)交互發(fā)展歷史2人機(jī)交互的發(fā)展過(guò)程,也是人適應(yīng)計(jì)算機(jī)到計(jì)算機(jī)不斷地適應(yīng)人的發(fā)展過(guò)程。人機(jī)交互發(fā)展歷史59年美國(guó)學(xué)者B.Shackel從人在操縱計(jì)算機(jī)時(shí)如何才能減輕疲勞出發(fā),提出了被認(rèn)為是人機(jī)界面的第一篇文獻(xiàn)的關(guān)于計(jì)算機(jī)控制臺(tái)設(shè)計(jì)的人機(jī)工程學(xué)的論文。1960年,Liklider
JCK首次提出人機(jī)緊密共棲(Human-Computer
Close
Symbiosis)的概念,被視為人機(jī)界面學(xué)的啟蒙觀點(diǎn)。1969年在英國(guó)劍橋大學(xué)召開(kāi)了第一次人機(jī)系統(tǒng)國(guó)際大會(huì),同年第一份專(zhuān)業(yè)雜志國(guó)際人機(jī)研究(IJMMS)創(chuàng)刊??梢哉f(shuō),1969年是人機(jī)界面學(xué)發(fā)展史的里程碑。
在1970年成立了兩個(gè)HCI研究中心:一個(gè)是英國(guó)的Loughbocough大學(xué)的HUSAT研究中心,另一個(gè)是美國(guó)Xerox公司的Palo
Alto研究中心。
1970年到1973年出版了四本與計(jì)算機(jī)相關(guān)的人機(jī)工程學(xué)專(zhuān)著,為人機(jī)交互界面的發(fā)展指明了方向。
20世紀(jì)80年代初期,學(xué)術(shù)界相繼出版了六本專(zhuān)著,對(duì)最新的人機(jī)交互研究成果進(jìn)行了總結(jié)。人機(jī)交互學(xué)科逐漸形成了自己的理論體系和實(shí)踐范疇的架構(gòu)。人機(jī)系統(tǒng)是指人為了達(dá)到某種預(yù)定目標(biāo),針對(duì)某些特定條件,利用已經(jīng)掌握的科學(xué)技術(shù),組成的人、機(jī)、環(huán)境共存的體系。這就是廣義的人機(jī)系統(tǒng),也稱(chēng)為人—機(jī)—環(huán)境系統(tǒng)。狹義的人機(jī)系統(tǒng)僅指人與機(jī)器組成的共存體系。1878198420032007人機(jī)交互系統(tǒng)的發(fā)展理論實(shí)踐theorypractice雷明頓2號(hào)打字機(jī)第一代蘋(píng)果Macintosh個(gè)人計(jì)算機(jī)黑莓推出的全鍵盤(pán)智能手機(jī)蘋(píng)果第一代iPhone智能手機(jī)的虛擬鍵盤(pán)
人機(jī)交互技術(shù)的最新應(yīng)用3
制造業(yè)
教育科研
軍事圖片來(lái)源于2018首屆青島軍民融合展覽拍攝參展商作品生活、文化娛樂(lè)
總結(jié)41、虛擬現(xiàn)實(shí)人機(jī)交互:基于鍵盤(pán)和字符顯示器的交互階段2、虛擬現(xiàn)實(shí)人機(jī)交互:基于鼠標(biāo)和圖形顯示器的交互階段3、虛擬現(xiàn)實(shí)人機(jī)交互:基于多媒體技術(shù)的交互階段4、虛擬現(xiàn)實(shí)人機(jī)交互:基于多模態(tài)技術(shù)集成的自然交互階段總結(jié)THANKYOU人機(jī)交互技術(shù)第一章
人機(jī)交互概述人機(jī)交互模型人機(jī)交互框架模型
在人機(jī)交互領(lǐng)域的模型研究方面,較早提出的一個(gè)有影響的模型是Norman的執(zhí)行-評(píng)估循環(huán)模型。Norman將人機(jī)交互過(guò)程分為執(zhí)行和評(píng)估兩個(gè)階段,其中包括建立目標(biāo)、形成意圖、動(dòng)作描述、執(zhí)行動(dòng)作、理解系統(tǒng)狀態(tài)、解釋系統(tǒng)狀態(tài)與根據(jù)目標(biāo)和意圖評(píng)估系統(tǒng)的狀態(tài)七個(gè)步驟。修正后的Norman模型
Abowd和Beale在1991年修正了Norman模型,這個(gè)模型為了同時(shí)反映交互系統(tǒng)中用戶和系統(tǒng)的特征,將交互分為系統(tǒng)、用戶、輸入和輸出四個(gè)部分一個(gè)交互周期中有目標(biāo)建立、執(zhí)行、表示和觀察四個(gè)階段,圖中每一個(gè)有向弧線表示了這四個(gè)階段,每一個(gè)階段對(duì)應(yīng)著一中描述語(yǔ)言到另一種描述語(yǔ)言的翻譯過(guò)程。一個(gè)交互周期以用戶的目標(biāo)建立階段開(kāi)始。
人機(jī)界面模型
人機(jī)界面模型是人機(jī)界面軟件的程序框架,它從理論上和總體上描述了用戶和計(jì)算機(jī)的交互活動(dòng)。隨著人機(jī)界面功能的增長(zhǎng),人機(jī)界面的設(shè)計(jì)也變得復(fù)雜,交互式應(yīng)用系統(tǒng)中界面代碼占70%以上。人機(jī)界面模型主要任務(wù)有任務(wù)分析模型、對(duì)話控制模型、結(jié)構(gòu)模型和面向?qū)ο竽P偷取?/p>
任務(wù)分析模型基于所要求的系統(tǒng)功能進(jìn)行用戶和系統(tǒng)活動(dòng)的描述和分析;對(duì)話控制模型用于描述人機(jī)交互過(guò)程的時(shí)間和邏輯序列,即描述人機(jī)交互過(guò)程的動(dòng)態(tài)行為過(guò)程;結(jié)構(gòu)模型從交互系統(tǒng)軟件結(jié)構(gòu)觀點(diǎn)來(lái)描述人機(jī)界面的構(gòu)成部件,它把人機(jī)交互中的各因素,如提示符、錯(cuò)誤信息、光標(biāo)移動(dòng)、用戶輸入、確認(rèn)、圖形、文本等有機(jī)地組織起來(lái);面向?qū)ο竽P褪菫橹С种苯硬倏v的圖形用戶界面而發(fā)展起來(lái)的,它可以把人機(jī)界面中的顯示和交互組合成一體作為一個(gè)基本的對(duì)象,也可以把顯示和交互分離為兩類(lèi)對(duì)象,建立起相應(yīng)的面向?qū)ο竽P汀?/p>
人機(jī)界面結(jié)構(gòu)模型
Seeheim模型
Seeheim模型是一種界面和應(yīng)用明確分離的軟件結(jié)構(gòu),該結(jié)構(gòu)于1985年在德國(guó)的Seeheim舉行的國(guó)際人機(jī)界面管理系統(tǒng)研討會(huì)上首先提出。該模型分為應(yīng)用接口部件、對(duì)話控制部件和表示部件三個(gè)部件。
Arch模型
Arch模型是1992年在Seeheim模型基礎(chǔ)上提出來(lái)的。由領(lǐng)域特定部件、領(lǐng)域適配部件、對(duì)話部件、表示部件和交互工具箱部件五部分組成。
對(duì)話部件:負(fù)責(zé)任務(wù)排隊(duì),領(lǐng)域適配器部件是協(xié)調(diào)對(duì)話部件和領(lǐng)域特定部件之間的通訊。
交互工具箱部件:是實(shí)現(xiàn)與終端用戶的物理交互,表示部件是協(xié)調(diào)對(duì)話部件和交互工具箱部件之間的通訊。
領(lǐng)域特定部件:是控制、操作及檢索與領(lǐng)域有關(guān)的數(shù)據(jù)。
面向?qū)ο蟮挠脩艚缑娼换ツP统R?jiàn)的面向?qū)ο蟮挠脩艚缑娼换ツP桶∕VC模型、PAC模型、PAC-Amodeus模型、LIM模型和YORK模型等:
MVC模型PAC模型
MVC模型是1983年提出的面向?qū)ο蟮慕换ナ较到y(tǒng)概念模型,該模型是在Smalltalk編程語(yǔ)言環(huán)境下提出來(lái)的。由控制器、視圖和模型三類(lèi)對(duì)象組成。
模型:表示應(yīng)用對(duì)象的狀態(tài)屬性和行為。
視圖:負(fù)責(zé)對(duì)象的可視屬性描述。
控制器:是處理用戶的輸入行為并給控制器發(fā)送事件。
優(yōu)點(diǎn):(1)可以為一個(gè)模型在運(yùn)行時(shí)同時(shí)建立和使用多個(gè)視圖。(2)視圖與控制器的可接插性,允許更換視圖和控制器對(duì)象,而且可以根據(jù)需求動(dòng)態(tài)的打開(kāi)或關(guān)閉、甚至在運(yùn)行期間進(jìn)行對(duì)象替換。(3)模型的可移植性,因?yàn)槟P褪仟?dú)立于視圖的,所以可以把一個(gè)模型獨(dú)立地移植到新的平臺(tái)工作。MVC的優(yōu)點(diǎn)與缺點(diǎn)缺點(diǎn):(1)增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對(duì)于簡(jiǎn)單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過(guò)多的更新操作,降低運(yùn)行效率。(2)視圖與控制器間過(guò)于緊密連接。視圖與控制器是相互分離但又卻是聯(lián)系緊密的部件,如果視圖沒(méi)有控制器的存在,其應(yīng)用是很有限的。(3)視圖對(duì)模型數(shù)據(jù)的低效率訪問(wèn)。依據(jù)模型操作接口的不同,視圖可能需要對(duì)此調(diào)用才能獲得足夠的顯示數(shù)據(jù)。PAC模型是Coutaz于1987年提出的一種叫做多智能體的交互式系統(tǒng)概念模型。PCA模型PAC模型和MVC模型之間有四個(gè)重要的區(qū)別:
(1)PAC模型Agent將應(yīng)用功能與陳述、輸入和輸出行為封裝在一個(gè)對(duì)象中。
(2)PAC模型用一個(gè)獨(dú)立的控制器來(lái)保持應(yīng)用語(yǔ)義用戶界面之間的一致性。
(3)PAC模型沒(méi)有基于任何一種編程環(huán)境。
(4)PAC模型將控制器獨(dú)立出來(lái),更加符合UIMS的設(shè)計(jì)思想,可以用來(lái)表示用戶界面不同的功能部分。
用戶概念模型
用戶概念模型:是一種用戶能夠理解的系統(tǒng)描述,它使用一組集成的構(gòu)思和概念,描述系統(tǒng)應(yīng)該做什么、如何運(yùn)作、外觀如何等。人機(jī)系統(tǒng)設(shè)計(jì)的首要任務(wù)是建立明確的、具體的概念模型。概念模型可以分為基于活動(dòng)的概念模型和基于對(duì)象的概念模型兩大類(lèi)。
基于活動(dòng)的概念模型
指示類(lèi)模型:描述的是用戶通過(guò)指示系統(tǒng)應(yīng)該做什么來(lái)完成自己的任務(wù),例如,用戶可向某個(gè)系統(tǒng)發(fā)出指示,要求打印文件。在Windows和其他GUI系統(tǒng)中,用戶則使用控制鍵,或者鼠標(biāo)選擇菜單項(xiàng)來(lái)發(fā)出指令。指示類(lèi)型或者支持快速、有效的交互,因此,特別適合于重復(fù)性的活動(dòng),用于操作多個(gè)對(duì)象。
對(duì)話模型的概念模型:是基于“人與系統(tǒng)的對(duì)話”模式設(shè)計(jì)的,它與“指示”類(lèi)型的模型不同。“對(duì)話”是一個(gè)雙向的通信過(guò)程,其系統(tǒng)更像是一個(gè)交互伙伴,而不僅僅是執(zhí)行命令的機(jī)器,最適合用于那些用戶系用查找特定類(lèi)型的信息,或者系統(tǒng)討論問(wèn)題的應(yīng)用。實(shí)際的“對(duì)話”方式可采用各種形式,如電話銀行、訂票、搜索引擎和援助系統(tǒng)。
操作與導(dǎo)航概念模型:利用用戶在現(xiàn)實(shí)世界中積累的知識(shí)來(lái)操作對(duì)象或穿越某個(gè)虛擬空間。例如,用戶通過(guò)移動(dòng)、選擇、打開(kāi)、關(guān)閉、縮放等方式來(lái)操作虛擬對(duì)象。也可以使用這些活動(dòng)的擴(kuò)展方式,即現(xiàn)實(shí)世界中不可能的方式來(lái)操作對(duì)象或穿越虛擬空間,例如,有些虛擬世界允許用戶控制自身的移動(dòng),或允許一個(gè)物體變成另一個(gè)物體。
搜索與瀏覽概念模型:搜索與瀏覽概念模型的思想是使用媒體去發(fā)掘和瀏覽信息,網(wǎng)頁(yè)和電子商務(wù)網(wǎng)站都是基于這個(gè)概念模型的應(yīng)用。基于對(duì)象的概念模型
對(duì)象類(lèi)型的概念模型是基于對(duì)象的模型。這類(lèi)模型要更為具體,側(cè)重于特定對(duì)象在特定環(huán)境中的使用方式,通常是對(duì)物理世界的模擬。例如,“電子表格”就是一個(gè)非常成功的基于對(duì)象的概念模型。基于對(duì)象的概念模型有“界面比擬”和“交互范型”。
“界面比擬”是采用比擬的方法將交互界面的概念模型與某個(gè)(或某些)物理實(shí)體之間存在著的某些方面的相似性體現(xiàn)在交互界面設(shè)計(jì)中?!敖缑姹葦M”將人們的習(xí)慣或熟知的事物同交互界面中的新概念結(jié)合起來(lái),“桌面”和“電子表格”既可以歸類(lèi)為基于對(duì)象的概念模型,同時(shí)也是界面比擬的例子。
交互范型(InteractionParadigm)是人們?cè)跇?gòu)思交互設(shè)計(jì)時(shí)的某種主導(dǎo)思想或思考方式。交互設(shè)計(jì)領(lǐng)域的主要交互范型就是開(kāi)發(fā)桌面應(yīng)用——面向監(jiān)視器、鍵盤(pán)和鼠標(biāo)的單用戶使用等。隨著無(wú)線、移動(dòng)技術(shù)和手持設(shè)備的出現(xiàn),已開(kāi)發(fā)出各種新的交互范型。這些交互范型已經(jīng)“超越桌面”。如無(wú)處不在的計(jì)算技術(shù),滲透性計(jì)算技術(shù)、可穿戴的計(jì)算技術(shù)、物理/虛擬環(huán)境集成技術(shù)等等。GOMS預(yù)測(cè)模型
目標(biāo)操作方法和選擇行為模型(GoalOperatorMethodSelection,GOMS)是人機(jī)交互領(lǐng)域最著名的預(yù)測(cè)模型,是用于分析交互系統(tǒng)中用戶復(fù)雜性的建模技術(shù),主要被軟件設(shè)計(jì)者用于建立用戶行為模型。它采用“分而治之”的思想,將一個(gè)任務(wù)進(jìn)行多層次的細(xì)化,通過(guò)目標(biāo)(Goal)、操作(Operator)、方法(Method)以及選擇規(guī)則(Selectionrule)四個(gè)元素來(lái)描述用戶行為。GOMS模型
目標(biāo)是用戶執(zhí)行任務(wù)最終想要得到的結(jié)果。它可以在不用的抽象層次中定義。如“編輯一篇文章”,高層次的目標(biāo)可以定義為“編輯文章”,低層次的目標(biāo)可以定義為“刪除字符”,一個(gè)高層次的目標(biāo)可以分解為若干個(gè)低層次目標(biāo)。
操作是任務(wù)分析到最底層時(shí)的行為,是用戶為了完成任務(wù)所必須執(zhí)行的基本動(dòng)作,如雙擊鼠標(biāo)左鍵、按下回車(chē)等。在GOMS模型中它們是原子動(dòng)作,不能再被分解。一般情況下,假設(shè)用戶執(zhí)行每個(gè)動(dòng)作需要一個(gè)固定的時(shí)間,并且這個(gè)時(shí)間間隔是與上下文無(wú)關(guān)的,如點(diǎn)擊一下鼠標(biāo)按鍵需要0.20秒的執(zhí)行時(shí)間,即操作花費(fèi)的時(shí)間與用戶正在完成什么樣的任務(wù)或當(dāng)前的操作環(huán)境沒(méi)有關(guān)系。
方法是描述如何完成目標(biāo)的過(guò)程。一個(gè)方法本質(zhì)上來(lái)說(shuō)是一個(gè)內(nèi)部算法,用來(lái)確定子目標(biāo)序列及完成目標(biāo)所需要的操作。如在Windows操作系統(tǒng)下關(guān)閉一個(gè)窗口有三種方法:可以從菜單中選擇CLOSE菜單項(xiàng),可以使用鼠標(biāo)點(diǎn)擊右上角的“X”按鈕,也可以按ALT+F4。在GOMS中,這三個(gè)子目標(biāo)的分解分別稱(chēng)為MOUSE-CLOSE方法和F4方法。圖給出GOMS模型中關(guān)閉窗口這一目標(biāo)的方法描述。關(guān)閉窗口行為描述實(shí)例
選擇規(guī)則是用戶要遵守的判定規(guī)則,是已確定在特定環(huán)境下所使用的方法。當(dāng)有多個(gè)方法可供選擇時(shí),GOMS中并不認(rèn)為這是一個(gè)隨機(jī)的選擇,而是盡量預(yù)測(cè)可能會(huì)使用哪個(gè)方法,這就需要根據(jù)特定用戶、系統(tǒng)狀態(tài)、目標(biāo)細(xì)節(jié)來(lái)預(yù)測(cè)。CMOS模型GOMS模型的應(yīng)用:(1)選出最高層的用戶目標(biāo)。實(shí)例中EDITING任務(wù)的最高層目標(biāo)是EDIT-MANUSCRIPT。(2)寫(xiě)出具體的完成目標(biāo)的方法,即激活子目標(biāo)。實(shí)例中EDIT-MANUSCRIPT的方法是完成目標(biāo)EDIT-UNIT-TASK,這也同時(shí)激活了子目標(biāo)EDIT-UNIT-TASK。(3)寫(xiě)出子目標(biāo)的方法。這是一個(gè)遞歸的過(guò)程,一直分解到最底層操作時(shí)停止。從實(shí)例的層次描述中可以了解到如何通過(guò)目標(biāo)分解的遞歸調(diào)用獲得子目標(biāo)的方法,如目標(biāo)EDIT-UNIT-TASK分解為ACQUIRE-UNIT-TASK和EXECUTE-NUIT-TASK兩個(gè)子目標(biāo),并通過(guò)順序執(zhí)行這兩個(gè)子目標(biāo)的方法完成目標(biāo)EDIT-UNIT-TASK。然后通過(guò)遞歸調(diào)用,又得到了完成目標(biāo)ACQUIRE-UNIT-TASK的操作序列,這樣這層目標(biāo)也就分解結(jié)束;而目標(biāo)EXECUTE-NUIT-TASK又得到了子目標(biāo)序列,因此還需要進(jìn)一步分解,直到全部成為操作序列為止。
基建層次模型
擊鍵層次模型(KLM)可對(duì)用戶執(zhí)行情況進(jìn)行量化預(yù)測(cè),能夠比較使用不同策略完成任務(wù)的時(shí)間。量化預(yù)測(cè)的主要好處是便于比較不同的系統(tǒng),以確定何種方案能最有效地支持特定任務(wù)。擊鍵層次模型的內(nèi)容
Card等人在KLM模型上施加的約束是KLM模型只能應(yīng)用到一個(gè)給定的計(jì)算機(jī)系統(tǒng)和一項(xiàng)給定的任務(wù)。同時(shí),與GOMS模型類(lèi)似,KLM的應(yīng)用要求任務(wù)執(zhí)行過(guò)程中不出現(xiàn)差錯(cuò),并且完成任務(wù)的方法事先已經(jīng)確定。也就是說(shuō),KLM能夠用來(lái)預(yù)計(jì)任務(wù)差錯(cuò)執(zhí)行的時(shí)間。KLM模型由操作符、編碼方法、放置M操作符的啟發(fā)規(guī)則組成。擊鍵層次模型的局限型
正如Card等人的初衷,KLM模型高度關(guān)注人機(jī)交互方面,其目的是為執(zhí)行標(biāo)準(zhǔn)任務(wù)的時(shí)間進(jìn)行建模。但KLM沒(méi)有考慮到錯(cuò)誤、學(xué)習(xí)型、功能性、回憶、專(zhuān)注程度、疲勞、可接受性等問(wèn)題。不過(guò)Card等人也指出,雖然KLM模型沒(méi)有考慮用戶出錯(cuò)的情況,但是如果知道彌補(bǔ)方法,KLM模型同樣可以預(yù)測(cè)執(zhí)行彌補(bǔ)任務(wù)的時(shí)間。
動(dòng)態(tài)特性建模
狀態(tài)轉(zhuǎn)移網(wǎng)絡(luò)
狀態(tài)轉(zhuǎn)移網(wǎng)絡(luò)(StateTransitionNetwork,STN)用于描述用戶和系統(tǒng)之間的對(duì)話已經(jīng)有很多年的歷史,它的第一次使用可以追溯到20世紀(jì)60年代后期,在20世紀(jì)70年代后期開(kāi)發(fā)為一種工具。STN可被用于探討菜單、圖標(biāo)和工具條等屏幕元素,還可以展示對(duì)外圍設(shè)備的操作。狀態(tài)轉(zhuǎn)移網(wǎng)絡(luò)最常用的形式是狀態(tài)轉(zhuǎn)移圖(StateTransitionDiagram,STD)。狀態(tài)轉(zhuǎn)移圖是有向圖,圖中的節(jié)點(diǎn)表示系統(tǒng)的各種狀態(tài),圖中的邊表示狀態(tài)之間可能的轉(zhuǎn)移。狀態(tài)轉(zhuǎn)移圖示例
事件1使用戶從狀態(tài)1到狀態(tài)2,事件4使用戶從狀態(tài)3’到狀態(tài)2’。STN還可以表示手柄、鼠標(biāo)等外圍設(shè)備的操作。這樣可以幫助設(shè)計(jì)者確定的設(shè)備在應(yīng)用中是否合適,還可以指導(dǎo)用于新型界面的指點(diǎn)設(shè)備的開(kāi)發(fā)。
三態(tài)模型
三態(tài)模型能夠揭示設(shè)備固有的狀態(tài)和狀態(tài)之間的轉(zhuǎn)移。交互設(shè)計(jì)者使用設(shè)備的三態(tài)模型幫助確定任務(wù)和設(shè)備的相互關(guān)系,并為特定的交互設(shè)計(jì)選擇合適的I/O設(shè)備,不具有特定任務(wù)所需的狀態(tài)的設(shè)備在設(shè)計(jì)過(guò)程中的初期就被排除在外。
指點(diǎn)設(shè)備可以使用被稱(chēng)為三態(tài)模型的特殊STN圖來(lái)表示所具有的特殊狀態(tài),即跟蹤運(yùn)動(dòng)、拖動(dòng)運(yùn)動(dòng)和無(wú)反饋運(yùn)動(dòng)。其中:無(wú)反饋運(yùn)動(dòng)(S0):某些指點(diǎn)設(shè)備的運(yùn)動(dòng)可以不被系統(tǒng)跟蹤,如觸摸屏上的筆和手指,一段無(wú)反饋運(yùn)動(dòng)后,指點(diǎn)設(shè)備可以重新位于屏幕上的任意位置。跟蹤運(yùn)動(dòng)(S1):鼠標(biāo)被系統(tǒng)跟蹤,鼠標(biāo)被表示為光標(biāo)位置。拖動(dòng)運(yùn)動(dòng)(S2):通過(guò)鼠標(biāo)拖放,可以操縱屏幕元素。
鼠標(biāo)的三態(tài)模型用戶可以拖動(dòng)鼠標(biāo),系統(tǒng)會(huì)跟蹤鼠標(biāo)的運(yùn)動(dòng)并通過(guò)更新光標(biāo)反映鼠標(biāo)的位置和運(yùn)動(dòng)的速度,這是狀態(tài)1,即跟蹤狀態(tài)。如果光標(biāo)處在一個(gè)文件的圖標(biāo)上,這時(shí)用戶可以按下鼠標(biāo)鍵(Windows平臺(tái)下是鼠標(biāo)左鍵)并移動(dòng)鼠標(biāo),文件夾圖標(biāo)會(huì)在屏幕范圍內(nèi)被拖動(dòng),這是狀態(tài)2,即拖動(dòng)狀態(tài)(拖動(dòng)通常會(huì)跟隨著鼠標(biāo)松開(kāi)動(dòng)作,鼠標(biāo)鍵松開(kāi)后圖標(biāo)會(huì)重新處于光標(biāo)所在的位置)。鼠標(biāo)的放置操作使模型返回到跟蹤狀態(tài)。拖動(dòng)狀態(tài)到跟中狀態(tài)之間的動(dòng)作被定義為拖放操作。
鼠標(biāo)的三態(tài)模型觸碰板的三態(tài)模型
現(xiàn)在考慮與圖形輸入相連接的手寫(xiě)筆或用于某些特定屏幕的光筆。手寫(xiě)筆或光筆可以離開(kāi)屏幕自由地移動(dòng),并不影響屏幕上的任何對(duì)象,即狀態(tài)0,一旦用戶將手寫(xiě)筆觸到屏幕,手寫(xiě)筆的移動(dòng)就會(huì)被跟蹤,即進(jìn)入狀態(tài)1。手寫(xiě)筆或光筆還可以選擇屏幕上的對(duì)象,并且拖動(dòng)它們?cè)谄聊簧弦苿?dòng),即進(jìn)入狀態(tài)2。狀態(tài)2可以通過(guò)多種方法實(shí)現(xiàn),如壓力敏感的筆尖或筆上嵌入的按鈕等。因此手寫(xiě)筆或光筆可以認(rèn)為是居于上述三個(gè)狀態(tài)的設(shè)備。圖是手寫(xiě)筆的三態(tài)模型。
手寫(xiě)筆的三態(tài)模型THANKYOU人機(jī)交互技術(shù)碰撞檢測(cè)概述目錄Catalog1教學(xué)目的與要求2重點(diǎn)、難點(diǎn)3教學(xué)進(jìn)程安排4課后學(xué)習(xí)任務(wù)布置教學(xué)目的與要求01.本章將介紹碰撞檢測(cè)的概念及其使用方法,讓學(xué)生了解碰撞檢測(cè)技術(shù)的作用并掌握使用方法。目的:教學(xué)目的與要求學(xué)生能夠了解并掌握碰撞檢測(cè)技術(shù)的使用方法,完成課堂的學(xué)習(xí)與討論,并且能夠積極完成課后作業(yè)。要求:重點(diǎn)、難點(diǎn)02.碰撞檢測(cè)的條件,覆寫(xiě)碰撞檢測(cè)的函數(shù)。重點(diǎn):重點(diǎn)、難點(diǎn)碰撞檢測(cè)和觸發(fā)檢測(cè)的區(qū)別。難點(diǎn):教學(xué)進(jìn)程安排03.碰撞檢測(cè)的意義在現(xiàn)實(shí)世界中,兩個(gè)物體不可能共享同一個(gè)空間區(qū)域。在虛擬環(huán)境的人機(jī)交互過(guò)程中,為了提升用戶交互過(guò)程中的沉浸感,同樣需要在虛擬場(chǎng)景中實(shí)現(xiàn)兩個(gè)不可穿透物體間互不共享同一空間區(qū)域的體驗(yàn)。若未對(duì)虛擬場(chǎng)景中的虛擬物體添加碰撞檢測(cè),虛擬物體之間在相互碰撞之后會(huì)出現(xiàn)“穿越”現(xiàn)象,這將會(huì)帶來(lái)極差的用戶體驗(yàn)。碰撞檢測(cè)的模擬要產(chǎn)生碰撞必須為交互對(duì)象添加剛體(Rigidbody)和碰撞器,剛體可以讓物體在物理影響下運(yùn)動(dòng)。碰撞體是物理組件的一類(lèi),它要與剛體一起添加到交互對(duì)象上才能觸發(fā)碰撞。如果兩個(gè)剛體相互撞在一起,除非兩個(gè)對(duì)象有碰撞體時(shí)物理引擎才會(huì)計(jì)算碰撞,在物理模擬中,沒(méi)有碰撞體的剛體會(huì)彼此相互穿過(guò)。碰撞檢測(cè)的條件物體發(fā)生碰撞的必要條件兩個(gè)物體都必須帶有碰撞器(Collider),其中一個(gè)物體還必須帶有Rigidbody剛體。在unity3d中,能檢測(cè)碰撞發(fā)生的方式有兩種,一種是利用碰撞器,另一種則是利用觸發(fā)器。碰撞檢測(cè)的接口函數(shù)在Unity3d中,主要有以下接口函數(shù)來(lái)處理這兩種碰撞檢測(cè):碰撞信息檢測(cè)1.當(dāng)進(jìn)入碰撞器時(shí):MonoBehaviour.OnCollisionEnter(CollisioncollisionInfo){}2.當(dāng)停留在碰撞器里:MonoBehaviour.OnCollisionStay(CollisioncollisionInfo){}3.當(dāng)退出碰撞器時(shí):MonoBehaviour.OnCollisionExit(CollisioncollisionInfo){}觸發(fā)信息檢測(cè)1.當(dāng)進(jìn)入觸發(fā)器時(shí):MonoBehaviour.OnTriggerEnter(Colliderother){}2.當(dāng)退出觸發(fā)器時(shí):MonoBehaviour.OnTriggerExit(Colliderother){}3.當(dāng)停留在觸發(fā)器中:MonoBehaviour.OnTriggerStay(Colliderother){}以上這六個(gè)接口都是MonoBehaviour的函數(shù),由于我們新建的腳本都繼承這個(gè)MonoBehaviour這個(gè)類(lèi)。所以我們的腳本里面可以覆寫(xiě)這六個(gè)函數(shù)。碰撞檢測(cè)和觸發(fā)檢測(cè)的區(qū)別物體發(fā)生碰撞的必要條件:兩個(gè)物體都必須帶有碰撞器(Collider),其中一個(gè)物體還必須帶有Rigidbody剛體。在unity3D中,能檢測(cè)碰撞發(fā)生的方式有兩種,一種是利用碰撞器,另一種則是利用觸發(fā)器。1、碰撞檢測(cè)碰撞器:包含了很多種類(lèi),比如:BoxCollider(盒碰撞體),MeshCollider(網(wǎng)格碰撞體)等,這些碰撞器應(yīng)用的場(chǎng)合不同,但都必須加到GameObjecet身上。2、觸發(fā)檢測(cè)觸發(fā)器:只需要在檢視面板中的碰撞器組件中勾選IsTrigger屬性選擇框。如果既要檢測(cè)到物體的接觸又不想讓碰撞檢測(cè)影響物體移動(dòng)或要檢測(cè)一個(gè)物件是否經(jīng)過(guò)空間中的某個(gè)區(qū)域這時(shí)就可以用到觸發(fā)器。課后學(xué)習(xí)任務(wù)布置04.課后學(xué)習(xí)任務(wù)布置通過(guò)所學(xué)的觸發(fā)檢測(cè)或碰撞檢測(cè)做一個(gè)小案例。THANKYOU人機(jī)交互技術(shù)射線檢測(cè)目錄Catalog1教學(xué)目的與要求2重點(diǎn)、難點(diǎn)3教學(xué)進(jìn)程安排4課后學(xué)習(xí)任務(wù)布置教學(xué)目的與要求01.本章將介紹射線檢測(cè)技術(shù)的應(yīng)用,讓學(xué)生了解射線檢測(cè)的原理和用法。目的:教學(xué)目的與要求學(xué)生完成課堂的學(xué)習(xí)與討論,并且能夠積極完成課后作業(yè)。要求:重點(diǎn)、難點(diǎn)02.射線檢測(cè)的概念和程序結(jié)構(gòu)。重點(diǎn):重點(diǎn)、難點(diǎn)射線檢測(cè)的發(fā)散性使用。難點(diǎn):教學(xué)進(jìn)程安排03.概念在開(kāi)發(fā)中,尤其是跟模型與交互的時(shí)候,都會(huì)用到射線檢測(cè)。射線:射線是3D世界中一個(gè)點(diǎn)向一個(gè)方向發(fā)射的一條無(wú)終點(diǎn)的線,在發(fā)射軌跡中與其他物體發(fā)生碰撞時(shí),它將停止發(fā)射。用途:射線應(yīng)用范圍比較廣,多用于碰撞檢測(cè)。在射擊游戲中,我們就可以使用射線來(lái)代替子彈的作用。相關(guān)APIRayCamera.main.ScreenPointToRay(Vector3pos):返回一條射線Ray從攝像機(jī)到屏幕指定一個(gè)點(diǎn)。RayCamera.main.ViewportPointToRay(Vector3pos):返回一條射線Ray從攝像機(jī)到視口(視口之外無(wú)效)指定一個(gè)點(diǎn)。Ray射線類(lèi)RaycastHit:光線投射碰撞信息boolPhysics.Raycast(Vector3origin,Vector3direction,floatdistance,intlayerMask):當(dāng)光線投射與任何碰撞器交叉時(shí)為真,否則為假。boolPhysics.Raycast(Rayray,Vector3direction,RaycastHitouthit,floatdistance,intlayerMask):在場(chǎng)景中投下可與所有碰撞器碰撞的一條光線,并返回碰撞的細(xì)節(jié)信息()。boolPhysics.Raycast(Rayray,floatdistance,intlayerMask):當(dāng)光線投射與任何碰撞器交叉時(shí)為真,否則為假。boolPhysics.Raycast(Vector3origin,Vector3direction,RaycastHitouthit,floatdistance,intlayerMask):當(dāng)光線投射與任何碰撞器交叉時(shí)為真,否則為假。注意:如果從一個(gè)球型體的內(nèi)部到外部用光線投射,返回為假。參數(shù)理解Origin:
在世界坐標(biāo)中射線的起始點(diǎn)direction:
射線的方向distance:
射線的長(zhǎng)度hit:
使用c#中out關(guān)鍵字傳入一個(gè)空的碰撞信息類(lèi),然后碰撞后賦值??梢缘玫脚鲎参矬w的
transform,rigidbody,point等信息。layerMask:只選定Layermask層內(nèi)的碰撞器,其它層內(nèi)碰撞器忽略。選擇性的碰撞。RaycastHit[]RaycastAll(Rayray,floatdistance,intlayerMask):
投射一條光線并返回所有碰撞,也就是投射光線并返回一個(gè)RaycastHit[]結(jié)構(gòu)體。代碼結(jié)構(gòu)以攝像機(jī)所在位置為起點(diǎn),創(chuàng)建一條向下發(fā)射的射線:
課后學(xué)習(xí)任務(wù)布置學(xué)生分組討論、并總結(jié)射線檢測(cè)還有哪些用法。THANKYOU人機(jī)交互技術(shù)人機(jī)交互技術(shù)鼠標(biāo)及鍵盤(pán)交互動(dòng)作項(xiàng)目介紹1項(xiàng)目展示2項(xiàng)目設(shè)計(jì)開(kāi)發(fā)3總結(jié)4目錄CONTENTS項(xiàng)目介紹1當(dāng)我們需要做一個(gè)PC端的軟件時(shí),免不了需要用鼠標(biāo)以及鍵盤(pán)進(jìn)行交互,控制,輸入等,有了這些功能之后,我們的軟件才能稱(chēng)之為一款完整的軟件。而這也是我們學(xué)習(xí)開(kāi)發(fā)的基礎(chǔ)功能,接下來(lái)我們就看一下在Unity中如何調(diào)用鍵盤(pán)和鼠標(biāo)在軟件中完成交互。項(xiàng)目展示2觀看視頻項(xiàng)目實(shí)現(xiàn)3項(xiàng)目實(shí)現(xiàn)Step1,打開(kāi)unity3d,新建3D項(xiàng)目。項(xiàng)目實(shí)現(xiàn)Step2,在場(chǎng)景中新建一個(gè)text用來(lái)顯示我們的操作信息。項(xiàng)目實(shí)現(xiàn)Step3,新建腳本KeyboardController,在Update函數(shù)中我們通過(guò)Input方法可以調(diào)用
鍵盤(pán)上的所有按鍵。其中主要有GetKeyDown、GetKey和GetKeyUp分別代表
按鍵被按下、按著以及松開(kāi)三種狀態(tài)。項(xiàng)目實(shí)現(xiàn)Step4,掛載代碼運(yùn)行場(chǎng)景進(jìn)行測(cè)試。項(xiàng)目實(shí)現(xiàn)Step5,繼續(xù)編寫(xiě)代碼,使用Input調(diào)用鼠標(biāo)點(diǎn)擊事件,同理有按下,按著和抬起三種狀態(tài),在此不一一贅述,而GetMouseButton方法所帶的參數(shù)中0,1,2分別代表著鼠標(biāo)的左鍵、右鍵、和中鍵。項(xiàng)目實(shí)現(xiàn)Step6,再次運(yùn)行場(chǎng)景進(jìn)行測(cè)試。項(xiàng)目實(shí)現(xiàn)Step7,新建代碼OnMouseController,使用函數(shù)方法來(lái)用來(lái)獲取點(diǎn)擊物品事件。項(xiàng)目實(shí)現(xiàn)Step8,刪除代碼KeyboardController。新建Cube,Sphere,Capsule等3D物體,給他們重命名并掛載代碼后進(jìn)行測(cè)試??偨Y(jié)4總結(jié)通過(guò)以上的學(xué)習(xí),我們了解了鼠標(biāo)事件和鍵盤(pán)事件的調(diào)用方法。我們根據(jù)以上學(xué)習(xí)的基礎(chǔ),可以搭配自己的想法以及其他知識(shí)點(diǎn),就可以做出一個(gè)有趣的小作品了??偨Y(jié)起來(lái),可以大致分為兩種,一、使用Input方法在Update函數(shù)中調(diào)用鼠標(biāo)和鍵盤(pán)事件。二、使用OnMouseDown等函數(shù)獲取鼠標(biāo)點(diǎn)擊某個(gè)物體的時(shí)間。THANKYOU人機(jī)交互技術(shù)AI尋路系統(tǒng)(入門(mén))目錄Catalog1教學(xué)目的與要求2重點(diǎn)、難點(diǎn)3教學(xué)進(jìn)程安排4課后學(xué)習(xí)任務(wù)布置教學(xué)目的與要求01.本章將介紹自動(dòng)尋路的作用和基礎(chǔ)用法。目的:教學(xué)目的與要求學(xué)生能夠根據(jù)學(xué)習(xí)內(nèi)容進(jìn)行AI尋路的實(shí)現(xiàn),完成課堂的學(xué)習(xí)與討論,并且能夠積極完成課后作業(yè)。要求:重點(diǎn)、難點(diǎn)02.掌握地形烘焙和尋路組件的使用重點(diǎn):重點(diǎn)、難點(diǎn)掌握非水平地形尋路的烘焙技術(shù)。難點(diǎn):教學(xué)進(jìn)程安排03.尋路簡(jiǎn)介Unity3d中的導(dǎo)航網(wǎng)格Navmesh廣泛應(yīng)用于動(dòng)態(tài)物體實(shí)現(xiàn)自動(dòng)尋路的功能,屬于人工智能的一種,通過(guò)此功能可以使智能AI自行繞過(guò)障礙或翻越墻體等,最終到達(dá)目標(biāo)地點(diǎn)或找到目標(biāo)對(duì)象,是一種既方便,有簡(jiǎn)單,同時(shí)還很實(shí)用的功能。尋路功能的組成尋路功能主要由三方面組成:1.Navigation地形烘焙。地形烘焙的作用是限定尋路范圍,只有在已經(jīng)經(jīng)過(guò)烘焙的地形上,AI才可以通過(guò)尋路找到目標(biāo)。2.NavmeshAgent尋路組件。其次,NavmeshAgent是控制AI進(jìn)行尋路的組件,只有掛載了NavmeshAgent組件的AI會(huì)通過(guò)尋路尋找他的目標(biāo)。3.代碼控制。最后,通過(guò)代碼控制可以確定NavmeshAgent尋路的目標(biāo),也可以限定其尋路的條件。Navigation烘焙說(shuō)明Navigation不只是使AI可以在水平地形上尋路那么簡(jiǎn)單,它還有許多的屬性值,通過(guò)調(diào)節(jié)這些值我們可以調(diào)整地形烘焙時(shí)的高度,半徑,角度等,其中如果有坡度較大的地形需要烘焙,我們只需要將
Bake中的MaxSlope值調(diào)至最大值就可以讓AI自行爬坡了。除此外,還可以通過(guò)調(diào)節(jié)其他數(shù)值實(shí)現(xiàn)AI的跳躍墜落等行為,請(qǐng)同學(xué)們自行探索。課后學(xué)習(xí)任務(wù)布置實(shí)現(xiàn)水平地形的尋路功能,探討Navigation屬性值的作用。THANKYOU人機(jī)交互技術(shù)AI尋路系統(tǒng)(進(jìn)階)目錄Catalog1教學(xué)目的與要求2重點(diǎn)、難點(diǎn)3教學(xué)進(jìn)程安排4課后學(xué)習(xí)任務(wù)布置教學(xué)目的與要求01.本章將更深入地介紹AI尋路系統(tǒng),更有深度的探究尋路組件的其他功能。目的:教學(xué)目的與要求學(xué)生能夠深入了解尋路系統(tǒng),完成課堂的學(xué)習(xí)與討論,并且能夠積極完成課后作業(yè)。要求:重點(diǎn)、難點(diǎn)02.在尋路系統(tǒng)入門(mén)的基礎(chǔ)上進(jìn)行進(jìn)階學(xué)習(xí),學(xué)習(xí)尋路系統(tǒng)的其他功能。重點(diǎn):重點(diǎn)、難點(diǎn)尋路系統(tǒng)的整理。難點(diǎn):教學(xué)進(jìn)程安排03.梯子效果爬坡功能允許攀爬的只有最大限度為60°的坡度,當(dāng)面對(duì)更大的坡度時(shí),MaxSlope就已經(jīng)無(wú)法滿足我們的需求了。這時(shí)我們需要用到一個(gè)新的組件:OffMeshLink。我們只需要給梯子添加OffMeshLink組件并掛載底端和頂端的空物體,我們就可以完成爬梯子的效果,實(shí)現(xiàn)垂直爬坡了。尋路路線限制到此為止我們學(xué)習(xí)的尋路都是在同一片烘焙區(qū)域,通過(guò)最短路徑自行尋找目標(biāo)的AI行為,但有時(shí)候我們需要限定不同的AI可以走的路線進(jìn)行區(qū)分,這種情況我們就需要用到Navigation組件的Areas功能了。在Areas中我們可以添加烘焙區(qū)域名稱(chēng),添加后Object中可以給烘焙區(qū)域限定區(qū)域名稱(chēng),最后就可以在NavmeshAgent里面選擇行走區(qū)域來(lái)限定AI的行走路線了。道路阻斷在尋路系統(tǒng)中,只要AI開(kāi)始尋路,就會(huì)“一去不回頭”。要怎么做才能在它尋路過(guò)程中對(duì)它進(jìn)行中途阻止呢,我們只需要在相應(yīng)的路段上添加一個(gè)名為NavMeshObstacle的組件,這一段路就會(huì)阻止AI通過(guò)了,再通過(guò)代碼控制該組件的顯隱性,就可以控制AI尋路時(shí),相應(yīng)路段的阻斷和連通了。課后學(xué)習(xí)任務(wù)布置學(xué)生分組討論,并整理進(jìn)階尋路實(shí)現(xiàn)過(guò)程的筆記。人機(jī)交互技術(shù)群組行為教學(xué)目的與要求1重點(diǎn)難點(diǎn)2教學(xué)進(jìn)程安排3課后學(xué)習(xí)任務(wù)布置4目錄CONTENTS教學(xué)目的與要求1教學(xué)目的與要求目的:本章將介紹群組行為功能的實(shí)現(xiàn)方法,讓學(xué)生了解群組行為的實(shí)現(xiàn)流程。要求:學(xué)生能夠使用群組行為模擬AI行為,完成課堂的學(xué)習(xí)與討論,并且能夠積極完成課后作業(yè)。重點(diǎn)難點(diǎn)2重點(diǎn)難點(diǎn)重點(diǎn):在本章中我們要學(xué)會(huì)力學(xué)的簡(jiǎn)單運(yùn)算,組的管理方法,完成對(duì)整個(gè)群組的控制。難點(diǎn):整理邏輯的整理,權(quán)重的把控。教學(xué)進(jìn)程安排3群組行為的作用群組行為隊(duì)列聚集分離力學(xué)計(jì)算距離檢測(cè)碰撞組管理當(dāng)有一群的人或者動(dòng)物與環(huán)境進(jìn)行真實(shí)的交互的時(shí)候,我們要想模擬出最真實(shí)的行為,就要讓群體的行為符合群體的特征。在不加入unity3d環(huán)境中的人工智能的情況下,用簡(jiǎn)單的視覺(jué)模糊來(lái)進(jìn)行鳥(niǎo)群的行為模擬。主要方法隊(duì)列的力力學(xué)計(jì)算聚集的力距離檢測(cè)分離的力碰撞組管理整個(gè)集體的前進(jìn)方向恒定,不會(huì)因?yàn)閭€(gè)體而進(jìn)行變動(dòng)。每個(gè)個(gè)體都會(huì)向集體匯聚,不會(huì)脫離大部隊(duì),分散太遠(yuǎn)。每個(gè)個(gè)體都會(huì)與其他個(gè)體保持一定距離,不會(huì)非??拷Mㄟ^(guò)牛頓第二定律計(jì)算每一個(gè)個(gè)體的前進(jìn)方向和速度每一個(gè)個(gè)體通過(guò)距離檢測(cè)判斷自身附近是否有其他個(gè)體將附近的同類(lèi)放到一個(gè)碰撞組中進(jìn)行管理。群組行為的實(shí)現(xiàn)定義并初始化變量:publicTransformtarget;publicVector3velocity=Vector3.forward;privateVector3startVelocity;publicVector3SumForce=Vector3.zero;voidStart(){target=GameObject.Find("Target").transform;startVelocity=velocity;}ForceCompute(){SumForce=Vector3.zero;
Lisan_Force=Vector3.zero;Duilie_Partner.Clear();//清除隊(duì)列數(shù)據(jù)
Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代碼的作用:用來(lái)檢測(cè)以某個(gè)位置為半徑發(fā)射一個(gè)圓以檢測(cè)球體內(nèi)有哪些游戲物體(用來(lái)做物理檢測(cè),得到的結(jié)果是coliider的集合)for(inti=0;i<colliders.Length;i++){if(colliders[i]!=null&&colliders[i].gameObject!=this.gameObject){Duilie_Partner.Add(colliders[i].gameObject);}}for(inti=0;i<Duilie_Partner.Count;i++){//計(jì)算位置距離
Vector3dir=transform.position-Duilie_Partner[i].transform.position;Lisan_Force+=dir.normalized/dir.magnitude;//計(jì)算所有鄰居向前的向量和
}if(Duilie_Partner.Count>0){Lisan_Force*=Lisan_Weight;SumForce+=Lisan_Force;}}定義計(jì)算合力的函數(shù)并添加分離的力:群組行為的實(shí)現(xiàn)定義隊(duì)列的力變量:publicfloatDuilie_Distance=6;//檢測(cè)距離publicList<GameObject>Duilie_Partner=newList<GameObject>();publicfloatDuilie_Weight=3;publicVector3Duilie_Force=Vector3.zero;SumForce=Vector3.zero;
Lisan_Force=Vector3.zero;Duilie_Partner.Clear();//清除隊(duì)列數(shù)據(jù)
Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代碼的作用:用來(lái)檢測(cè)以某個(gè)位置為半徑發(fā)射一個(gè)圓以檢測(cè)球體內(nèi)有哪些游戲物體(用來(lái)做物理檢測(cè),得到的結(jié)果是coliider的集合)for(inti=0;i<colliders.Length;i++){if(colliders[i]!=null&&colliders[i].gameObject!=this.gameObject){Duilie_Partner.Add(colliders[i].gameObject);}}for(inti=0;i<Duilie_Partner.Count;i++){//計(jì)算位置距離Vector3dir=transform.position-Duilie_Partner[i].transform.position;Lisan_Force+=dir.normalized/dir.magnitude;//計(jì)算所有鄰居向前的向量和
}if(Duilie_Partner.Count>0){Lisan_Force*=Lisan_Weight;SumForce+=Lisan_Force;}}在合力計(jì)算中添加隊(duì)列的力:群組行為的實(shí)現(xiàn)定義聚集的力變量:publicTransformtarget;publicVector3velocity=Vector3.forward;privateVector3startVelocity;publicVector3SumForce=Vector3.zero;voidStart(){target=GameObject.Find("Target").transform;startVelocity=velocity;}ForceCompute(){SumForce=Vector3.zero;
Lisan_Force=Vector3.zero;Duilie_Partner.Clear();//清除隊(duì)列數(shù)據(jù)
Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代碼的作用:用來(lái)檢測(cè)以某個(gè)位置為半徑發(fā)射一個(gè)圓以檢測(cè)球體內(nèi)有哪些游戲物體(用來(lái)做物理檢測(cè),得到的結(jié)果是coliider的集合)for(inti=0;i<colliders.Length;i++){if(colliders[i]!=null&&colliders[i].gameObject!=this.gameObject){Duilie_Partner.Add(colliders[i].gameObject);}}for(inti=0;i<Duilie_Partner.Count;i++){//計(jì)算位置距離
Vector3dir=transform.position-Duilie_Partner[i].transform.position;Lisan_Force+=dir.normalized/dir.magnitude;//計(jì)算所有鄰居向前的向量和
}if(Duilie_Partner.Count>0){Lisan_Force*=Lisan_Weight;SumForce+=Lisan_Force;}}在合力計(jì)算中添加聚集的力:群組行為的實(shí)現(xiàn)在合力中添加恒定飛行速度的力變量:ForceCompute(){…………//保持恒定飛行速度的力
Vector3engineForce=startVelocity-velocity;SumForce+=engineForce*0.1f;Vector3targetDir=target.position-transform.position;SumForce+=(targetDir.normalized-transform.forward)*speed*10f;}publicfloatTimer=0;publicfloatcheckTime=0.2f;publicfloatmass=1;voidUpdate(){Timer+=Time.deltaTime;if(Timer>checkTime){ForceCompute();//每0.2秒調(diào)用一次函數(shù)
Timer=0;}velocity+=(SumForce/mass)*Time.deltaTime*0.1f;transform.rotation=Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(velocity),Time.deltaTime*3);transform.Translate(transform.forward*Time.deltaTime*velocity.magnitude,Space.World);}穩(wěn)定頻率調(diào)用計(jì)算合力的函數(shù):課后學(xué)習(xí)任務(wù)布置4課后學(xué)習(xí)任務(wù)布置學(xué)生分組討論,整理群組行為實(shí)現(xiàn)過(guò)程的筆記并理清整個(gè)功能的邏輯。THANKYOU人機(jī)交互技術(shù)Human-ComputerInteractionTechnology——基于LeapMotion的《夢(mèng)幻森林》案例學(xué)習(xí)目的和要求1
重點(diǎn)和難點(diǎn)2《夢(mèng)幻森林》LeapMotion和完善3
課后總結(jié)4目錄CONTENTS學(xué)習(xí)指導(dǎo)建議重點(diǎn)掌握LeapMotion基本手勢(shì)控制函數(shù),能夠替換不同的手部模型控制場(chǎng)景中的物體將LeapMotion與Unity3D進(jìn)行連接,能夠理解相關(guān)的參數(shù)設(shè)定,并且能夠熟練的掌握位移、換色等基本操作強(qiáng)化練習(xí)LeapMotion的使用,通過(guò)相關(guān)的粒子特效案例增加趣味性、通過(guò)群組行為的控制使其和其他知識(shí)單元能夠緊密結(jié)合,并且能夠掌握相關(guān)的可穿戴設(shè)備的優(yōu)缺點(diǎn),參加各項(xiàng)學(xué)科賽事本章的學(xué)習(xí)建議在實(shí)驗(yàn)室的環(huán)境中進(jìn)行,能夠結(jié)合相應(yīng)的設(shè)備進(jìn)行不斷的測(cè)試,同時(shí)本章的案例源代碼在本書(shū)的配套光盤(pán)中,課后的案例和課程回顧等保存在本書(shū)的慕課資源中,建議讀者先學(xué)習(xí)本章的基礎(chǔ)知識(shí),在最后通過(guò)線上教學(xué)資源進(jìn)行不斷的提升和課程的內(nèi)容的加強(qiáng)練習(xí)。
學(xué)習(xí)目的和要求1學(xué)習(xí)目的和要求目的:
通過(guò)對(duì)《夢(mèng)幻森林》案例的分析和學(xué)習(xí),了解完整項(xiàng)目的制作過(guò)程,學(xué)習(xí)交互設(shè)計(jì)思路。將素材與技術(shù)更好的結(jié)合。目的:
通過(guò)對(duì)《夢(mèng)幻森林》案例的分析和學(xué)習(xí),了解完整項(xiàng)目的制作過(guò)程,學(xué)習(xí)交互設(shè)計(jì)思路。將素材與技術(shù)更好的結(jié)合。要求:
基于《夢(mèng)幻森林》案例的了解結(jié)合對(duì)LeapMotion的學(xué)習(xí),設(shè)計(jì)并創(chuàng)新新的交互創(chuàng)意和ji'yu玩法。
重點(diǎn)和難點(diǎn)2重點(diǎn)和難點(diǎn)重點(diǎn):
掌握LeapMotion的基礎(chǔ)知識(shí),學(xué)會(huì)靈活運(yùn)用,完善項(xiàng)目。難點(diǎn):
對(duì)LeapMotion的運(yùn)用,研究出符合自己主題的功能,設(shè)計(jì)合理有趣。LeapMotion和項(xiàng)目完善3LeapMotion和項(xiàng)目完善本節(jié)主要是對(duì)《夢(mèng)幻森林》案例的最后一個(gè)交互模塊LeapMotion交互和整個(gè)項(xiàng)目最好完善部分的分析,在《夢(mèng)幻森林》的LeapMotion中,用簡(jiǎn)單的交互方式,實(shí)現(xiàn)蝴蝶群對(duì)LeapMotion手部的追蹤。LeapMotion和項(xiàng)目完善首先,先導(dǎo)入LeapMotion,進(jìn)入場(chǎng)景測(cè)試設(shè)備是否正常。,正常狀態(tài)如下圖所示將3D場(chǎng)景導(dǎo)入到LeapMotion場(chǎng)景中,導(dǎo)入蝴蝶資源包,添加進(jìn)入場(chǎng)景中。LeapMotion和項(xiàng)目完善LeapMotion和項(xiàng)目完善以下腳本負(fù)責(zé)控制蝴蝶的群組行為控制。usingSystem.Collections;usingSystem.Collections.Generic;usingunityEngine;publicclassBufferController:MonoBehaviour{publicfloatspeed=1;publicVector3velocity=Vector3.forward;privateVector3startVelocity;publicTransformtarget;publicVector3sumForce=Vector3.zero;
LeapMotion和項(xiàng)目完善
publicfloatm=10;publicfloatseparationDistance=3;publicList<GameObject>seprationNeighbors=newList<GameObject>();publicfloatseparationWeight=1;//publicVector3separationForce=Vector3.zero;//分離的力publicfloatalignmentDistance=6;publicList<GameObject>alignmentNeighbors=newList<GameObject>();publicfloatalignmentWeight=3;publicVector3alignmentForce=Vector3.zero;//隊(duì)列的力publicfloatcohesionWeight=1;publicVector3cohesionForce=Vector3.zero;//聚合的力publicfloatcheckInterval=0.2f;publicfloatanimRandomTime=2f;
privateAnimationanim;
LeapMotion和項(xiàng)目完善
privatevoidStart(){target=GameObject.Find("Target").transform;startVelocity=velocity;InvokeRepeating("CalcForce",0,checkInterval);anim=GetComponentInChildren<Animation>();Invoke("PlayAnim",Random.Range(0,animRandomTime));}voidPlayAnim(){anim.Play();}voidCalcForce(){print("calcForce");sumForce=Vector3.zero;separationForce=Vector3.zero;
LeapMotion和項(xiàng)目完善//計(jì)算分離的力seprationNeighbors.Clear();Collider[]colliders=Physics.OverlapSphere(transform.position,separationDistance);foreach(Collidercincolliders){if(c!=null&&c.gameObject!=this.gameObject){
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年網(wǎng)絡(luò)安全與防護(hù)咨詢服務(wù)合同范本匯編3篇
- 2024年酒店洗滌服務(wù)合同3篇
- 2025年度建筑工程質(zhì)量驗(yàn)收與整改跟蹤合同3篇
- 2025版二零二五年連鎖加盟品牌總部授權(quán)合同3篇
- 2024年玉石購(gòu)銷(xiāo)協(xié)議樣本版B版
- 2025版農(nóng)業(yè)機(jī)械設(shè)備租賃銷(xiāo)售合同協(xié)議2篇
- 2024天津鄉(xiāng)村振興示范點(diǎn)土地承包出租管理合同2篇
- 2025年超高壓電纜輸電系統(tǒng)項(xiàng)目發(fā)展計(jì)劃
- 2025至2030年中國(guó)迷你餃子器行業(yè)投資前景及策略咨詢研究報(bào)告
- 相機(jī)拍照基礎(chǔ)課程設(shè)計(jì)
- 2024-2025學(xué)年北師版八年級(jí)物理上冊(cè)期末考試綜合測(cè)試卷
- 【MOOC】國(guó)際商務(wù)-暨南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 人教版八年級(jí)英語(yǔ)上冊(cè)期末專(zhuān)項(xiàng)復(fù)習(xí)-完形填空和閱讀理解(含答案)
- GB/T 44592-2024紅樹(shù)林生態(tài)保護(hù)修復(fù)技術(shù)規(guī)程
- 2024新版有限空間作業(yè)安全大培訓(xùn)
- 2023-2024學(xué)年廣東省廣州市白云區(qū)八年級(jí)(上)期末數(shù)學(xué)試卷及答案解析
- 2024年中郵保險(xiǎn)公司招聘筆試參考題庫(kù)含答案解析
- 汽車(chē)底盤(pán)構(gòu)造與維修技能考核方案
- 畢業(yè)設(shè)計(jì)(論文)全自動(dòng)洗衣機(jī)傳動(dòng)系統(tǒng)設(shè)計(jì)
- 熱電廠工程施工方案(完整版)
- (2021年整理)雙擁朗誦稿
評(píng)論
0/150
提交評(píng)論