人機交互技術(shù) 課件全套 李想 第1-10章 什么是人機交互、人機交互概述和發(fā)展-夢幻森林案例教學_第1頁
人機交互技術(shù) 課件全套 李想 第1-10章 什么是人機交互、人機交互概述和發(fā)展-夢幻森林案例教學_第2頁
人機交互技術(shù) 課件全套 李想 第1-10章 什么是人機交互、人機交互概述和發(fā)展-夢幻森林案例教學_第3頁
人機交互技術(shù) 課件全套 李想 第1-10章 什么是人機交互、人機交互概述和發(fā)展-夢幻森林案例教學_第4頁
人機交互技術(shù) 課件全套 李想 第1-10章 什么是人機交互、人機交互概述和發(fā)展-夢幻森林案例教學_第5頁
已閱讀5頁,還剩200頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

人機交互技術(shù)第一章

人機交互概述1.1人機交互的概念1.1.1為什么要研究人機交互

自從上個世紀40年代計算機誕生以來,計算機和圍繞計算機的信息產(chǎn)業(yè)蓬勃發(fā)展。當前,制造業(yè)、IT業(yè)、汽車行業(yè)等許多產(chǎn)業(yè)都有計算機的身影。人不但要跟電腦、平板、手機等看得見摸得著的計算機進行交互,而且要和嵌入到汽車、電視、微波爐等機器內(nèi)部的計算機進行交互?,F(xiàn)在很多人在研究人機交互,優(yōu)秀的設計可以提高人們的工作效率,使人們的工作生活更加簡潔,更加方便。什么是人機交互

人機交互(Human-ComputerInteraction,簡稱HCI)是一門研究計算機系統(tǒng)與用戶之間交互關系的學問。美國計算機協(xié)會ACM人機交互興趣小組(SpecialInterestGrouponComputer–HumanInteraction,簡稱SIGCHI)給出了人機交互的定義,人機交互是關于設計、評價和實現(xiàn)供人使用的交互式計算系統(tǒng),以及圍繞這些方法的主要現(xiàn)象進行研究的一門學科。

人機交互是與認知心理學、人機工程學、多媒體技術(shù)、虛擬現(xiàn)實技術(shù)等密切相關的綜合學科,可以從不同的角度(計算機科學、機器和人)來研究人機交互。例如從計算機科學的角度,人機交互的焦點是交互,尤其是單個或多個用戶與一個或多個計算機的交互,以及通過計算機系統(tǒng)的人際交互;而從機器的觀點,計算機可能是獨立運作的計算機,也可能是嵌入式計算機器,比如作為太空駕駛員座艙或者微波爐的一部分。從人類用戶的角度看,需要考慮分布式系統(tǒng),計算機輔助通訊,或依靠不同系統(tǒng)進行協(xié)同工作等特性。因此,人機交互既研究機械裝置,也研究人的因素,人機交互是當代技術(shù)發(fā)展的一個重要支撐領域。人機交互的簡史發(fā)展是人類亙古不變的主題,一個社會發(fā)展的關鍵在于其核心生產(chǎn)工具的發(fā)展。計算機作為新時代的核心生產(chǎn)工具,如何高效地與之交互一直是業(yè)界的研究熱點。經(jīng)過數(shù)十年的實踐和發(fā)展,人機交互理念、技術(shù)和外圍設備逐漸由萌芽走向發(fā)展和成熟。

手工操作和命令行交互階段ENIAC是一個龐然大物,重30余噸,占地約170平方米,包含18000只電子管。研究者通過手工開閉計算機上的開關作為輸入,通過機器上指示燈的明暗作為輸出。如圖所示,在埃尼阿克計算機中,每個功能表上有多個開關,用戶通過操作功能表上的開關進行數(shù)據(jù)輸入。工作人員在設置ENIAC的一個功能表上的開關組早期的五孔紙帶上世紀50年代,人們開始使用穿孔紙帶與計算機進行交互。穿孔紙帶大約一寸寬,中間的一排小孔用來確定位置,兩側(cè)的大孔用來表示信息,穿孔或不穿孔表示1和0,計算機指令用大孔中的若干個孔表示,一條簡單的程序通常都需要幾米長的紙帶,如圖所示。但是,這種交互方式輸入輸出速度慢,可靠性低,逐漸被淘汰。

DECVT100,一個廣泛應用的計算機終端(1978)

1956年,MIT開始研究使用鍵盤向計算機輸入信息。60年代中期起,基于鍵盤的命令行接口成為大多數(shù)計算機的主要交互方式。操作人員在命令行界面中輸入命令,界面接收命令行,然后把命令行文字翻譯成相應的系統(tǒng)功能。整個70年代,甚至直到80年代,這種交互方式一直在持續(xù)使用。大家所熟知的Unix操作系統(tǒng)、微軟的DOS系統(tǒng)、以及蘋果的DOS系統(tǒng)都是采用命令行的方式。

圖形化用戶界面階段進入70年代,計算機的使用范圍日趨廣泛,人機交互的設計理念隨之前進。易用性(Usability)、用戶友好逐漸成為人機交互設計的首要考慮要素,人機交互的理念進入以用戶為中心(User-CenteredDesign,簡稱UCD)的時代。道格拉斯?恩格爾巴特拿著他發(fā)明的鼠標1968年,Stanford大學的道格拉斯·恩格爾巴特(DouglasEnglebart)博士發(fā)明了世界上第一個滑動鼠標,如圖所示。設計的初衷是為了使計算機的操作更加簡捷,代替在鍵盤上敲擊繁瑣的指令。恩格爾巴特制作的鼠標是一只小木頭盒子,工作原理是由它底部的小球帶動樞軸轉(zhuǎn)動,從而使得內(nèi)部的變阻器改變阻值來產(chǎn)生位移訊號,經(jīng)計算機處理,鼠標的移動轉(zhuǎn)化成了屏幕上的光標的移動。鼠標極大地改善了人機之間的交互方式,這個發(fā)明被電氣與電子工程師協(xié)會(InstituteofElectricalandElectronicEngineers,簡稱IEEE)列為計算機誕生50年來最重大的事件之一。XeroxPalo于70年代中后期研制出原型機Star,形成了以窗口、圖標、菜單和指示器為基礎的圖形界面,也稱為WIMP界面,Apple公司最先采用了這種圖形界面。1983年,蘋果公司開發(fā)的Lisa桌面電腦配置了鼠標,并首次采用了圖形化的用戶界面(GraphicalUserInterface,簡稱GUI)。Lisa創(chuàng)造性地采用了桌面“隱喻(Metaphor)”,使用了位映射(bitamp)、窗口(window)、圖符(icon)等圖形化元素來代表對應的操作,用戶可通過鼠標點擊方便地與計算機進行交互,如圖所示。Lisa由于售價高,市場接受度不高,但其成就了之后的蘋果Macintosh計算機。這種基于鼠標便捷操作和直觀的圖形化界面的交互方式成為人機交互進化的歷史性變革。(a)Lisa電腦

(b)Lisa的屏幕自然人機交互階段80年代末,多媒體技術(shù)繁榮發(fā)展。聲卡、圖像卡等硬件設備的發(fā)明和實現(xiàn)使得計算機處理聲音及視頻圖像成為可能,多媒體輸入輸出設備如揚聲器、話筒和攝像頭等逐漸為人機交互所用,如圖所示。人機交互的內(nèi)容更加豐富有趣,用戶能以聲、像、圖、文等多種媒體信息方式與計算機進行信息交流。用戶利用多媒體技術(shù)與計算機進行生動的交互自然人機交互輸入設備的進展

自然人機交互更加注重用戶的個人體驗,以人為中心。在交互輸入方面,從最開始的手工操作開關、鼠標鍵盤輸入,發(fā)展到當前的體感交互等自然交互方式。1972年,NolanBushnell發(fā)明了第一個交互電子游戲Pong,首次將操控技術(shù)運用到了人機交互系統(tǒng)中。1977年,ToraDefanti和DanielSandin開發(fā)了一套手套式傳感器系統(tǒng)SayreGlove,用戶只需要帶上這樣特殊的手套就可以向計算機輸入特定指令。交互顯示設備的進展

在交互顯示方面,人們追求身臨其境的感覺。1838年,CharlesWheatstone研究發(fā)現(xiàn)人類大腦是通過處理左右眼看到的不同視角圖像來產(chǎn)生三維感覺的,這一發(fā)現(xiàn)奠定了現(xiàn)代所有立體顯示技術(shù)的理論基礎,包括裸眼3D、眼鏡式3D、沉浸式VR等。1961年,由Philco公司研發(fā)的Headsight問世,這是世界上第一款頭戴式顯示器,同時該設備首次融合了頭部追蹤功能,Headsight主要用于隱秘信息的查看。1985年,美國NASA研發(fā)出LCD光學頭戴顯示器,同時融合了頭部、手部追蹤功能,可實現(xiàn)更加沉浸的體驗,其主要用于太空作業(yè)的模擬訓練等。人機交互的新技術(shù)近年來,隨著機器視覺、人工智能、模式識別技術(shù)的發(fā)展,以及相應的計算機軟硬件技術(shù)的進步,以手勢識別、動作識別、語音識別等為基礎的自然人機交互技術(shù)不斷涌現(xiàn)。交互的模式,也從單一通道輸入向多通道輸入改變,最終達到智能和自然的目的。多點觸控多點觸控技術(shù)是一種允許多用戶、多手指同時傳輸輸入信號,并根據(jù)動態(tài)手勢進行實時響應的新型交互技術(shù)。該項技術(shù)采用裸手作為交互媒介,使用電學或者視覺技術(shù)完成信息的采集與定位。

多點觸控技術(shù)經(jīng)過了多年的積累和發(fā)展。該系統(tǒng)在大屏多點觸控系統(tǒng)設計方面成本低、敏感度高,而且使用計算機視覺技術(shù)具有較好的擴展性。其系統(tǒng)效果圖如下圖所示,用戶可以通過單手或者多手直接操控電腦。單手觸控(左)與雙手觸控(右)

手勢交互

手勢交互是指人通過手部動作表達特定的含義和交互意圖,通過具有符號功能的手勢來進行信息交流和控制計算機的交互技術(shù)。例如,可以采用如下圖所示的生活中的6種手勢類型,將其語義分別定義為確定/抓取、返回/釋放、鎖定/解鎖、右選、待轉(zhuǎn)/移動、左選操作指令。

手勢交互是一種新興的交互技術(shù),其技術(shù)核心是手勢識別。根據(jù)識別對象可將手勢識別技術(shù)分為靜態(tài)手勢識別和動態(tài)手勢識別。數(shù)據(jù)手套是一種應用較為廣泛的手勢識別方式。右圖形象地描述了數(shù)據(jù)手套的結(jié)構(gòu)。

手勢識別的另一種方式是通過攝像頭采集手勢數(shù)據(jù)。這種方式下,人不需要穿戴額外的手套,裸手即可與計算機互動。如下圖所示,LeapMotion主要由兩個攝像頭和3個紅外LED組成。LeapMotion的組成結(jié)構(gòu)(左)與圖像效果(右)

人體動作識別

人體動作是人表達意愿的重要信號,包含了豐富的語義。人體動作是指包括頭、四肢、軀干等人的各個身體部分在空間中的姿勢或者運動過程。下圖展示了基于人體動作的人機交互應用。動作分析的人機交互應用

人體動作分析是人機交互交互系統(tǒng)的重要支撐技術(shù),是一個多學科交叉的研究課題,使用了數(shù)學建模、圖形圖像分析、模式識別、人工智能等知識,具有重要的理論研究價值。一個完整的人體動作分析過程主要包括動作捕捉、動作特征描述和動作分類識別三大部分。與其他交互手段相比,人體動作交互技術(shù)無論是硬件還是軟件方面都有了較大的提升,交互設備向小型化、便攜化、使用方便化等方面發(fā)展。

語音交互

語音交互是人以自然語音或機器合成語音同計算機進行交互的綜合性技術(shù)。機器通過識別和理解把語音信號轉(zhuǎn)變?yōu)橄鄳奈谋净蛎?,人通過語音與機器進行對話交流,讓機器明白用戶的交互意圖。下圖給出了語音交互的示例商業(yè)產(chǎn)品。(a)AppleSiri

(b)amazonecho

語音交互需要對語音識別和語音合成進行研究,還要對人在語音通道下的交互機理、行為方式等進行研究。語音交互過程包括四部分:語音采集、語音識別、語義理解和語音合成。語音采集完成音頻的錄入、采樣及編碼;語音識別完成語音信息到機器可識別的文本信息的轉(zhuǎn)化;語義理解根據(jù)語音識別轉(zhuǎn)換后的文本字符或命令完成相應的操作;語音合成完成文本信息到聲音信息的轉(zhuǎn)換。

其它新興的交互方式

人類的交互方式還有很多,當前眼球、意念、表情、唇讀等更多的新興手段被引入到人機交互的領域。這些方式針對不同的應用和人群,在特殊情況下更為有效。人機交互設計的標準、原則和指導方針人機交互設計的標準(1)ISO的人機工程學技術(shù)委員會ISO9241包含多個部分,對人機交互、以人為中心的設計、用戶界面、用戶體驗、易用性等都有描述。右表是其各個子系列的基本標準號和標題。

近年來,以人為中心的人機交互設計是人機交互的一個研究熱點。以人為中心的設計方法應該遵循以下原則。

(1)設計基于對用戶、任務和環(huán)境的明確的理解。(2)用戶參與整個設計和開發(fā)。(3)設計由以用戶為中心的評估驅(qū)動和改進。(4)過程是不斷迭代的。(5)設計表達了全部用戶體驗。(6)設計團隊包括多學科的技能和視角。W3C的多通道交互工作組

2002年,萬維網(wǎng)聯(lián)盟W3C成立多通道交互工作組。工作組的目標是制定標準以使得種類繁多的通道之間能夠交互。工作組描述了多通道交互生態(tài)系統(tǒng)一個典型示例,由多個框架組件構(gòu)成,如下圖所示。多通道交互生態(tài)系統(tǒng)示例

人機交互的原則和指導方針

Shneiderman的界面設計八個黃金法則:(1)盡力保持一致性(2)使用戶能用快捷鍵操作頻繁使用的項目(3)提供有幫助的反饋信息(4)會話和流程設計要走向一個完結(jié)(5)提供防止用戶出錯的機制,并提供簡潔的錯誤提示信息(6)允許便捷的撤銷操作(7)給用戶掌控感(8)減少短時記憶負擔Nilesen的10個易用性啟發(fā)式方法:(1)系統(tǒng)狀態(tài)可見(2)系統(tǒng)和真實世界相匹配(3)撤銷重做原則(4)一致性原則(5)防錯原則(6)易取原則(7)靈活高效原則(8)易快速瀏覽原則(9)容錯原則(10)人性化幫助原則PeterMorville的用戶體驗蜂巢圖:

在書中,PeterMorville給出了用戶體驗蜂巢圖,對人機交互設計很有指導意義,如左圖所示。用戶體驗蜂巢圖自然人機交互設計的指導方針我們認為以下幾點方針更符合自然人機交互系統(tǒng)設計思想。(1)非接觸式的體感交互(2)多通道上下文感知融合(3)虛擬與現(xiàn)實的交互映射(4)注重反饋和限制因素(5)考慮通用性和擴展性THANKYOU人機交互技術(shù)人機交互概述和發(fā)展

人機交互的研究內(nèi)容1

人機交互的發(fā)展歷史2

最新應用3總結(jié)4目錄CONTENTS

人機交互的研究內(nèi)容1人機交互(Human-ComputerInteraction,HCI)是關于設計、評價和實現(xiàn)供人們使用的交互式計算機系統(tǒng),且圍繞這些方面的主要現(xiàn)象進行研究的學科。人機交互、人機互動(英文:Human–ComputerInteraction或Human–MachineInteraction,簡稱HCI或HMI),是一門研究系統(tǒng)與用戶之間的交互關系的學問。人機交互的研究內(nèi)容傳統(tǒng)的人機交互(HumanComputerInteraction,HCI)是研究運用什么樣的開發(fā)原理及方法,讓人們可以方便地使用計算機系統(tǒng)的學科。20世紀90年代后期以來,隨著高速處理芯片,多媒體技術(shù)和InternetWeb技術(shù)的迅速發(fā)展和普及,人機交互的研究重點放在了智能化交互,多模態(tài)(多通道)-多媒體交互,虛擬交互以及人機協(xié)同交互等方面,也就是放在以人為中心的人機交互技術(shù)方面。人機交互的發(fā)展歷史,是從人適應計算機到計算機不斷地適應人的發(fā)展史。簡單來理解就是研究用戶和計算機之間交互的學科,如何讓人們更加方便高效的運用計算機技術(shù)。新媒體技術(shù)的逐步發(fā)展,豐富了HCI這一領域的研究內(nèi)容,從傳統(tǒng)的人與計算機鍵盤、鼠標從而控制顯示內(nèi)容和文本的互動,轉(zhuǎn)變?yōu)楦嗟淖匀唤换バ问剑w現(xiàn)形態(tài)也從二維擴展到三維可視化的終端顯示。在最初,很多學者和專家認為HCI可以通過網(wǎng)頁設計、網(wǎng)站設計來體現(xiàn),逐漸的發(fā)展至今,我們可以通過虛擬現(xiàn)實(VR)技術(shù)、增強現(xiàn)實(AR)技術(shù)、混合現(xiàn)實(MR)技術(shù)以及影像現(xiàn)實(CR)技術(shù)作為技術(shù)表現(xiàn)形式的手段,基于計算機及網(wǎng)絡產(chǎn)生的內(nèi)容和相對計算機及網(wǎng)絡現(xiàn)實所產(chǎn)生的內(nèi)容,針對內(nèi)容、渠道的接受主體(人或其他物體),形成主體、內(nèi)容、渠道這三個要素構(gòu)成的人機交互產(chǎn)品。人機交互的研究內(nèi)容筆式交互設備視覺交互設備虛擬環(huán)境中的交互

觸覺交互設備課程內(nèi)容介紹課程內(nèi)容KT點課程內(nèi)容KT點

人機交互發(fā)展歷史2人機交互的發(fā)展過程,也是人適應計算機到計算機不斷地適應人的發(fā)展過程。人機交互發(fā)展歷史59年美國學者B.Shackel從人在操縱計算機時如何才能減輕疲勞出發(fā),提出了被認為是人機界面的第一篇文獻的關于計算機控制臺設計的人機工程學的論文。1960年,Liklider

JCK首次提出人機緊密共棲(Human-Computer

Close

Symbiosis)的概念,被視為人機界面學的啟蒙觀點。1969年在英國劍橋大學召開了第一次人機系統(tǒng)國際大會,同年第一份專業(yè)雜志國際人機研究(IJMMS)創(chuàng)刊??梢哉f,1969年是人機界面學發(fā)展史的里程碑。

在1970年成立了兩個HCI研究中心:一個是英國的Loughbocough大學的HUSAT研究中心,另一個是美國Xerox公司的Palo

Alto研究中心。

1970年到1973年出版了四本與計算機相關的人機工程學專著,為人機交互界面的發(fā)展指明了方向。

20世紀80年代初期,學術(shù)界相繼出版了六本專著,對最新的人機交互研究成果進行了總結(jié)。人機交互學科逐漸形成了自己的理論體系和實踐范疇的架構(gòu)。人機系統(tǒng)是指人為了達到某種預定目標,針對某些特定條件,利用已經(jīng)掌握的科學技術(shù),組成的人、機、環(huán)境共存的體系。這就是廣義的人機系統(tǒng),也稱為人—機—環(huán)境系統(tǒng)。狹義的人機系統(tǒng)僅指人與機器組成的共存體系。1878198420032007人機交互系統(tǒng)的發(fā)展理論實踐theorypractice雷明頓2號打字機第一代蘋果Macintosh個人計算機黑莓推出的全鍵盤智能手機蘋果第一代iPhone智能手機的虛擬鍵盤

人機交互技術(shù)的最新應用3

制造業(yè)

教育科研

軍事圖片來源于2018首屆青島軍民融合展覽拍攝參展商作品生活、文化娛樂

總結(jié)41、虛擬現(xiàn)實人機交互:基于鍵盤和字符顯示器的交互階段2、虛擬現(xiàn)實人機交互:基于鼠標和圖形顯示器的交互階段3、虛擬現(xiàn)實人機交互:基于多媒體技術(shù)的交互階段4、虛擬現(xiàn)實人機交互:基于多模態(tài)技術(shù)集成的自然交互階段總結(jié)THANKYOU人機交互技術(shù)第一章

人機交互概述人機交互模型人機交互框架模型

在人機交互領域的模型研究方面,較早提出的一個有影響的模型是Norman的執(zhí)行-評估循環(huán)模型。Norman將人機交互過程分為執(zhí)行和評估兩個階段,其中包括建立目標、形成意圖、動作描述、執(zhí)行動作、理解系統(tǒng)狀態(tài)、解釋系統(tǒng)狀態(tài)與根據(jù)目標和意圖評估系統(tǒng)的狀態(tài)七個步驟。修正后的Norman模型

Abowd和Beale在1991年修正了Norman模型,這個模型為了同時反映交互系統(tǒng)中用戶和系統(tǒng)的特征,將交互分為系統(tǒng)、用戶、輸入和輸出四個部分一個交互周期中有目標建立、執(zhí)行、表示和觀察四個階段,圖中每一個有向弧線表示了這四個階段,每一個階段對應著一中描述語言到另一種描述語言的翻譯過程。一個交互周期以用戶的目標建立階段開始。

人機界面模型

人機界面模型是人機界面軟件的程序框架,它從理論上和總體上描述了用戶和計算機的交互活動。隨著人機界面功能的增長,人機界面的設計也變得復雜,交互式應用系統(tǒng)中界面代碼占70%以上。人機界面模型主要任務有任務分析模型、對話控制模型、結(jié)構(gòu)模型和面向?qū)ο竽P偷取?/p>

任務分析模型基于所要求的系統(tǒng)功能進行用戶和系統(tǒng)活動的描述和分析;對話控制模型用于描述人機交互過程的時間和邏輯序列,即描述人機交互過程的動態(tài)行為過程;結(jié)構(gòu)模型從交互系統(tǒng)軟件結(jié)構(gòu)觀點來描述人機界面的構(gòu)成部件,它把人機交互中的各因素,如提示符、錯誤信息、光標移動、用戶輸入、確認、圖形、文本等有機地組織起來;面向?qū)ο竽P褪菫橹С种苯硬倏v的圖形用戶界面而發(fā)展起來的,它可以把人機界面中的顯示和交互組合成一體作為一個基本的對象,也可以把顯示和交互分離為兩類對象,建立起相應的面向?qū)ο竽P汀?/p>

人機界面結(jié)構(gòu)模型

Seeheim模型

Seeheim模型是一種界面和應用明確分離的軟件結(jié)構(gòu),該結(jié)構(gòu)于1985年在德國的Seeheim舉行的國際人機界面管理系統(tǒng)研討會上首先提出。該模型分為應用接口部件、對話控制部件和表示部件三個部件。

Arch模型

Arch模型是1992年在Seeheim模型基礎上提出來的。由領域特定部件、領域適配部件、對話部件、表示部件和交互工具箱部件五部分組成。

對話部件:負責任務排隊,領域適配器部件是協(xié)調(diào)對話部件和領域特定部件之間的通訊。

交互工具箱部件:是實現(xiàn)與終端用戶的物理交互,表示部件是協(xié)調(diào)對話部件和交互工具箱部件之間的通訊。

領域特定部件:是控制、操作及檢索與領域有關的數(shù)據(jù)。

面向?qū)ο蟮挠脩艚缑娼换ツP统R姷拿嫦驅(qū)ο蟮挠脩艚缑娼换ツP桶∕VC模型、PAC模型、PAC-Amodeus模型、LIM模型和YORK模型等:

MVC模型PAC模型

MVC模型是1983年提出的面向?qū)ο蟮慕换ナ较到y(tǒng)概念模型,該模型是在Smalltalk編程語言環(huán)境下提出來的。由控制器、視圖和模型三類對象組成。

模型:表示應用對象的狀態(tài)屬性和行為。

視圖:負責對象的可視屬性描述。

控制器:是處理用戶的輸入行為并給控制器發(fā)送事件。

優(yōu)點:(1)可以為一個模型在運行時同時建立和使用多個視圖。(2)視圖與控制器的可接插性,允許更換視圖和控制器對象,而且可以根據(jù)需求動態(tài)的打開或關閉、甚至在運行期間進行對象替換。(3)模型的可移植性,因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作。MVC的優(yōu)點與缺點缺點:(1)增加了系統(tǒng)結(jié)構(gòu)和實現(xiàn)的復雜性。對于簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結(jié)構(gòu)的復雜性,并可能產(chǎn)生過多的更新操作,降低運行效率。(2)視圖與控制器間過于緊密連接。視圖與控制器是相互分離但又卻是聯(lián)系緊密的部件,如果視圖沒有控制器的存在,其應用是很有限的。(3)視圖對模型數(shù)據(jù)的低效率訪問。依據(jù)模型操作接口的不同,視圖可能需要對此調(diào)用才能獲得足夠的顯示數(shù)據(jù)。PAC模型是Coutaz于1987年提出的一種叫做多智能體的交互式系統(tǒng)概念模型。PCA模型PAC模型和MVC模型之間有四個重要的區(qū)別:

(1)PAC模型Agent將應用功能與陳述、輸入和輸出行為封裝在一個對象中。

(2)PAC模型用一個獨立的控制器來保持應用語義用戶界面之間的一致性。

(3)PAC模型沒有基于任何一種編程環(huán)境。

(4)PAC模型將控制器獨立出來,更加符合UIMS的設計思想,可以用來表示用戶界面不同的功能部分。

用戶概念模型

用戶概念模型:是一種用戶能夠理解的系統(tǒng)描述,它使用一組集成的構(gòu)思和概念,描述系統(tǒng)應該做什么、如何運作、外觀如何等。人機系統(tǒng)設計的首要任務是建立明確的、具體的概念模型。概念模型可以分為基于活動的概念模型和基于對象的概念模型兩大類。

基于活動的概念模型

指示類模型:描述的是用戶通過指示系統(tǒng)應該做什么來完成自己的任務,例如,用戶可向某個系統(tǒng)發(fā)出指示,要求打印文件。在Windows和其他GUI系統(tǒng)中,用戶則使用控制鍵,或者鼠標選擇菜單項來發(fā)出指令。指示類型或者支持快速、有效的交互,因此,特別適合于重復性的活動,用于操作多個對象。

對話模型的概念模型:是基于“人與系統(tǒng)的對話”模式設計的,它與“指示”類型的模型不同?!皩υ挕笔且粋€雙向的通信過程,其系統(tǒng)更像是一個交互伙伴,而不僅僅是執(zhí)行命令的機器,最適合用于那些用戶系用查找特定類型的信息,或者系統(tǒng)討論問題的應用。實際的“對話”方式可采用各種形式,如電話銀行、訂票、搜索引擎和援助系統(tǒng)。

操作與導航概念模型:利用用戶在現(xiàn)實世界中積累的知識來操作對象或穿越某個虛擬空間。例如,用戶通過移動、選擇、打開、關閉、縮放等方式來操作虛擬對象。也可以使用這些活動的擴展方式,即現(xiàn)實世界中不可能的方式來操作對象或穿越虛擬空間,例如,有些虛擬世界允許用戶控制自身的移動,或允許一個物體變成另一個物體。

搜索與瀏覽概念模型:搜索與瀏覽概念模型的思想是使用媒體去發(fā)掘和瀏覽信息,網(wǎng)頁和電子商務網(wǎng)站都是基于這個概念模型的應用?;趯ο蟮母拍钅P?/p>

對象類型的概念模型是基于對象的模型。這類模型要更為具體,側(cè)重于特定對象在特定環(huán)境中的使用方式,通常是對物理世界的模擬。例如,“電子表格”就是一個非常成功的基于對象的概念模型。基于對象的概念模型有“界面比擬”和“交互范型”。

“界面比擬”是采用比擬的方法將交互界面的概念模型與某個(或某些)物理實體之間存在著的某些方面的相似性體現(xiàn)在交互界面設計中?!敖缑姹葦M”將人們的習慣或熟知的事物同交互界面中的新概念結(jié)合起來,“桌面”和“電子表格”既可以歸類為基于對象的概念模型,同時也是界面比擬的例子。

交互范型(InteractionParadigm)是人們在構(gòu)思交互設計時的某種主導思想或思考方式。交互設計領域的主要交互范型就是開發(fā)桌面應用——面向監(jiān)視器、鍵盤和鼠標的單用戶使用等。隨著無線、移動技術(shù)和手持設備的出現(xiàn),已開發(fā)出各種新的交互范型。這些交互范型已經(jīng)“超越桌面”。如無處不在的計算技術(shù),滲透性計算技術(shù)、可穿戴的計算技術(shù)、物理/虛擬環(huán)境集成技術(shù)等等。GOMS預測模型

目標操作方法和選擇行為模型(GoalOperatorMethodSelection,GOMS)是人機交互領域最著名的預測模型,是用于分析交互系統(tǒng)中用戶復雜性的建模技術(shù),主要被軟件設計者用于建立用戶行為模型。它采用“分而治之”的思想,將一個任務進行多層次的細化,通過目標(Goal)、操作(Operator)、方法(Method)以及選擇規(guī)則(Selectionrule)四個元素來描述用戶行為。GOMS模型

目標是用戶執(zhí)行任務最終想要得到的結(jié)果。它可以在不用的抽象層次中定義。如“編輯一篇文章”,高層次的目標可以定義為“編輯文章”,低層次的目標可以定義為“刪除字符”,一個高層次的目標可以分解為若干個低層次目標。

操作是任務分析到最底層時的行為,是用戶為了完成任務所必須執(zhí)行的基本動作,如雙擊鼠標左鍵、按下回車等。在GOMS模型中它們是原子動作,不能再被分解。一般情況下,假設用戶執(zhí)行每個動作需要一個固定的時間,并且這個時間間隔是與上下文無關的,如點擊一下鼠標按鍵需要0.20秒的執(zhí)行時間,即操作花費的時間與用戶正在完成什么樣的任務或當前的操作環(huán)境沒有關系。

方法是描述如何完成目標的過程。一個方法本質(zhì)上來說是一個內(nèi)部算法,用來確定子目標序列及完成目標所需要的操作。如在Windows操作系統(tǒng)下關閉一個窗口有三種方法:可以從菜單中選擇CLOSE菜單項,可以使用鼠標點擊右上角的“X”按鈕,也可以按ALT+F4。在GOMS中,這三個子目標的分解分別稱為MOUSE-CLOSE方法和F4方法。圖給出GOMS模型中關閉窗口這一目標的方法描述。關閉窗口行為描述實例

選擇規(guī)則是用戶要遵守的判定規(guī)則,是已確定在特定環(huán)境下所使用的方法。當有多個方法可供選擇時,GOMS中并不認為這是一個隨機的選擇,而是盡量預測可能會使用哪個方法,這就需要根據(jù)特定用戶、系統(tǒng)狀態(tài)、目標細節(jié)來預測。CMOS模型GOMS模型的應用:(1)選出最高層的用戶目標。實例中EDITING任務的最高層目標是EDIT-MANUSCRIPT。(2)寫出具體的完成目標的方法,即激活子目標。實例中EDIT-MANUSCRIPT的方法是完成目標EDIT-UNIT-TASK,這也同時激活了子目標EDIT-UNIT-TASK。(3)寫出子目標的方法。這是一個遞歸的過程,一直分解到最底層操作時停止。從實例的層次描述中可以了解到如何通過目標分解的遞歸調(diào)用獲得子目標的方法,如目標EDIT-UNIT-TASK分解為ACQUIRE-UNIT-TASK和EXECUTE-NUIT-TASK兩個子目標,并通過順序執(zhí)行這兩個子目標的方法完成目標EDIT-UNIT-TASK。然后通過遞歸調(diào)用,又得到了完成目標ACQUIRE-UNIT-TASK的操作序列,這樣這層目標也就分解結(jié)束;而目標EXECUTE-NUIT-TASK又得到了子目標序列,因此還需要進一步分解,直到全部成為操作序列為止。

基建層次模型

擊鍵層次模型(KLM)可對用戶執(zhí)行情況進行量化預測,能夠比較使用不同策略完成任務的時間。量化預測的主要好處是便于比較不同的系統(tǒng),以確定何種方案能最有效地支持特定任務。擊鍵層次模型的內(nèi)容

Card等人在KLM模型上施加的約束是KLM模型只能應用到一個給定的計算機系統(tǒng)和一項給定的任務。同時,與GOMS模型類似,KLM的應用要求任務執(zhí)行過程中不出現(xiàn)差錯,并且完成任務的方法事先已經(jīng)確定。也就是說,KLM能夠用來預計任務差錯執(zhí)行的時間。KLM模型由操作符、編碼方法、放置M操作符的啟發(fā)規(guī)則組成。擊鍵層次模型的局限型

正如Card等人的初衷,KLM模型高度關注人機交互方面,其目的是為執(zhí)行標準任務的時間進行建模。但KLM沒有考慮到錯誤、學習型、功能性、回憶、專注程度、疲勞、可接受性等問題。不過Card等人也指出,雖然KLM模型沒有考慮用戶出錯的情況,但是如果知道彌補方法,KLM模型同樣可以預測執(zhí)行彌補任務的時間。

動態(tài)特性建模

狀態(tài)轉(zhuǎn)移網(wǎng)絡

狀態(tài)轉(zhuǎn)移網(wǎng)絡(StateTransitionNetwork,STN)用于描述用戶和系統(tǒng)之間的對話已經(jīng)有很多年的歷史,它的第一次使用可以追溯到20世紀60年代后期,在20世紀70年代后期開發(fā)為一種工具。STN可被用于探討菜單、圖標和工具條等屏幕元素,還可以展示對外圍設備的操作。狀態(tài)轉(zhuǎn)移網(wǎng)絡最常用的形式是狀態(tài)轉(zhuǎn)移圖(StateTransitionDiagram,STD)。狀態(tài)轉(zhuǎn)移圖是有向圖,圖中的節(jié)點表示系統(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還可以表示手柄、鼠標等外圍設備的操作。這樣可以幫助設計者確定的設備在應用中是否合適,還可以指導用于新型界面的指點設備的開發(fā)。

三態(tài)模型

三態(tài)模型能夠揭示設備固有的狀態(tài)和狀態(tài)之間的轉(zhuǎn)移。交互設計者使用設備的三態(tài)模型幫助確定任務和設備的相互關系,并為特定的交互設計選擇合適的I/O設備,不具有特定任務所需的狀態(tài)的設備在設計過程中的初期就被排除在外。

指點設備可以使用被稱為三態(tài)模型的特殊STN圖來表示所具有的特殊狀態(tài),即跟蹤運動、拖動運動和無反饋運動。其中:無反饋運動(S0):某些指點設備的運動可以不被系統(tǒng)跟蹤,如觸摸屏上的筆和手指,一段無反饋運動后,指點設備可以重新位于屏幕上的任意位置。跟蹤運動(S1):鼠標被系統(tǒng)跟蹤,鼠標被表示為光標位置。拖動運動(S2):通過鼠標拖放,可以操縱屏幕元素。

鼠標的三態(tài)模型用戶可以拖動鼠標,系統(tǒng)會跟蹤鼠標的運動并通過更新光標反映鼠標的位置和運動的速度,這是狀態(tài)1,即跟蹤狀態(tài)。如果光標處在一個文件的圖標上,這時用戶可以按下鼠標鍵(Windows平臺下是鼠標左鍵)并移動鼠標,文件夾圖標會在屏幕范圍內(nèi)被拖動,這是狀態(tài)2,即拖動狀態(tài)(拖動通常會跟隨著鼠標松開動作,鼠標鍵松開后圖標會重新處于光標所在的位置)。鼠標的放置操作使模型返回到跟蹤狀態(tài)。拖動狀態(tài)到跟中狀態(tài)之間的動作被定義為拖放操作。

鼠標的三態(tài)模型觸碰板的三態(tài)模型

現(xiàn)在考慮與圖形輸入相連接的手寫筆或用于某些特定屏幕的光筆。手寫筆或光筆可以離開屏幕自由地移動,并不影響屏幕上的任何對象,即狀態(tài)0,一旦用戶將手寫筆觸到屏幕,手寫筆的移動就會被跟蹤,即進入狀態(tài)1。手寫筆或光筆還可以選擇屏幕上的對象,并且拖動它們在屏幕上移動,即進入狀態(tài)2。狀態(tài)2可以通過多種方法實現(xiàn),如壓力敏感的筆尖或筆上嵌入的按鈕等。因此手寫筆或光筆可以認為是居于上述三個狀態(tài)的設備。圖是手寫筆的三態(tài)模型。

手寫筆的三態(tài)模型THANKYOU人機交互技術(shù)碰撞檢測概述目錄Catalog1教學目的與要求2重點、難點3教學進程安排4課后學習任務布置教學目的與要求01.本章將介紹碰撞檢測的概念及其使用方法,讓學生了解碰撞檢測技術(shù)的作用并掌握使用方法。目的:教學目的與要求學生能夠了解并掌握碰撞檢測技術(shù)的使用方法,完成課堂的學習與討論,并且能夠積極完成課后作業(yè)。要求:重點、難點02.碰撞檢測的條件,覆寫碰撞檢測的函數(shù)。重點:重點、難點碰撞檢測和觸發(fā)檢測的區(qū)別。難點:教學進程安排03.碰撞檢測的意義在現(xiàn)實世界中,兩個物體不可能共享同一個空間區(qū)域。在虛擬環(huán)境的人機交互過程中,為了提升用戶交互過程中的沉浸感,同樣需要在虛擬場景中實現(xiàn)兩個不可穿透物體間互不共享同一空間區(qū)域的體驗。若未對虛擬場景中的虛擬物體添加碰撞檢測,虛擬物體之間在相互碰撞之后會出現(xiàn)“穿越”現(xiàn)象,這將會帶來極差的用戶體驗。碰撞檢測的模擬要產(chǎn)生碰撞必須為交互對象添加剛體(Rigidbody)和碰撞器,剛體可以讓物體在物理影響下運動。碰撞體是物理組件的一類,它要與剛體一起添加到交互對象上才能觸發(fā)碰撞。如果兩個剛體相互撞在一起,除非兩個對象有碰撞體時物理引擎才會計算碰撞,在物理模擬中,沒有碰撞體的剛體會彼此相互穿過。碰撞檢測的條件物體發(fā)生碰撞的必要條件兩個物體都必須帶有碰撞器(Collider),其中一個物體還必須帶有Rigidbody剛體。在unity3d中,能檢測碰撞發(fā)生的方式有兩種,一種是利用碰撞器,另一種則是利用觸發(fā)器。碰撞檢測的接口函數(shù)在Unity3d中,主要有以下接口函數(shù)來處理這兩種碰撞檢測:碰撞信息檢測1.當進入碰撞器時:MonoBehaviour.OnCollisionEnter(CollisioncollisionInfo){}2.當停留在碰撞器里:MonoBehaviour.OnCollisionStay(CollisioncollisionInfo){}3.當退出碰撞器時:MonoBehaviour.OnCollisionExit(CollisioncollisionInfo){}觸發(fā)信息檢測1.當進入觸發(fā)器時:MonoBehaviour.OnTriggerEnter(Colliderother){}2.當退出觸發(fā)器時:MonoBehaviour.OnTriggerExit(Colliderother){}3.當停留在觸發(fā)器中:MonoBehaviour.OnTriggerStay(Colliderother){}以上這六個接口都是MonoBehaviour的函數(shù),由于我們新建的腳本都繼承這個MonoBehaviour這個類。所以我們的腳本里面可以覆寫這六個函數(shù)。碰撞檢測和觸發(fā)檢測的區(qū)別物體發(fā)生碰撞的必要條件:兩個物體都必須帶有碰撞器(Collider),其中一個物體還必須帶有Rigidbody剛體。在unity3D中,能檢測碰撞發(fā)生的方式有兩種,一種是利用碰撞器,另一種則是利用觸發(fā)器。1、碰撞檢測碰撞器:包含了很多種類,比如:BoxCollider(盒碰撞體),MeshCollider(網(wǎng)格碰撞體)等,這些碰撞器應用的場合不同,但都必須加到GameObjecet身上。2、觸發(fā)檢測觸發(fā)器:只需要在檢視面板中的碰撞器組件中勾選IsTrigger屬性選擇框。如果既要檢測到物體的接觸又不想讓碰撞檢測影響物體移動或要檢測一個物件是否經(jīng)過空間中的某個區(qū)域這時就可以用到觸發(fā)器。課后學習任務布置04.課后學習任務布置通過所學的觸發(fā)檢測或碰撞檢測做一個小案例。THANKYOU人機交互技術(shù)射線檢測目錄Catalog1教學目的與要求2重點、難點3教學進程安排4課后學習任務布置教學目的與要求01.本章將介紹射線檢測技術(shù)的應用,讓學生了解射線檢測的原理和用法。目的:教學目的與要求學生完成課堂的學習與討論,并且能夠積極完成課后作業(yè)。要求:重點、難點02.射線檢測的概念和程序結(jié)構(gòu)。重點:重點、難點射線檢測的發(fā)散性使用。難點:教學進程安排03.概念在開發(fā)中,尤其是跟模型與交互的時候,都會用到射線檢測。射線:射線是3D世界中一個點向一個方向發(fā)射的一條無終點的線,在發(fā)射軌跡中與其他物體發(fā)生碰撞時,它將停止發(fā)射。用途:射線應用范圍比較廣,多用于碰撞檢測。在射擊游戲中,我們就可以使用射線來代替子彈的作用。相關APIRayCamera.main.ScreenPointToRay(Vector3pos):返回一條射線Ray從攝像機到屏幕指定一個點。RayCamera.main.ViewportPointToRay(Vector3pos):返回一條射線Ray從攝像機到視口(視口之外無效)指定一個點。Ray射線類RaycastHit:光線投射碰撞信息boolPhysics.Raycast(Vector3origin,Vector3direction,floatdistance,intlayerMask):當光線投射與任何碰撞器交叉時為真,否則為假。boolPhysics.Raycast(Rayray,Vector3direction,RaycastHitouthit,floatdistance,intlayerMask):在場景中投下可與所有碰撞器碰撞的一條光線,并返回碰撞的細節(jié)信息()。boolPhysics.Raycast(Rayray,floatdistance,intlayerMask):當光線投射與任何碰撞器交叉時為真,否則為假。boolPhysics.Raycast(Vector3origin,Vector3direction,RaycastHitouthit,floatdistance,intlayerMask):當光線投射與任何碰撞器交叉時為真,否則為假。注意:如果從一個球型體的內(nèi)部到外部用光線投射,返回為假。參數(shù)理解Origin:

在世界坐標中射線的起始點direction:

射線的方向distance:

射線的長度hit:

使用c#中out關鍵字傳入一個空的碰撞信息類,然后碰撞后賦值??梢缘玫脚鲎参矬w的

transform,rigidbody,point等信息。layerMask:只選定Layermask層內(nèi)的碰撞器,其它層內(nèi)碰撞器忽略。選擇性的碰撞。RaycastHit[]RaycastAll(Rayray,floatdistance,intlayerMask):

投射一條光線并返回所有碰撞,也就是投射光線并返回一個RaycastHit[]結(jié)構(gòu)體。代碼結(jié)構(gòu)以攝像機所在位置為起點,創(chuàng)建一條向下發(fā)射的射線:

課后學習任務布置學生分組討論、并總結(jié)射線檢測還有哪些用法。THANKYOU人機交互技術(shù)人機交互技術(shù)鼠標及鍵盤交互動作項目介紹1項目展示2項目設計開發(fā)3總結(jié)4目錄CONTENTS項目介紹1當我們需要做一個PC端的軟件時,免不了需要用鼠標以及鍵盤進行交互,控制,輸入等,有了這些功能之后,我們的軟件才能稱之為一款完整的軟件。而這也是我們學習開發(fā)的基礎功能,接下來我們就看一下在Unity中如何調(diào)用鍵盤和鼠標在軟件中完成交互。項目展示2觀看視頻項目實現(xiàn)3項目實現(xiàn)Step1,打開unity3d,新建3D項目。項目實現(xiàn)Step2,在場景中新建一個text用來顯示我們的操作信息。項目實現(xiàn)Step3,新建腳本KeyboardController,在Update函數(shù)中我們通過Input方法可以調(diào)用

鍵盤上的所有按鍵。其中主要有GetKeyDown、GetKey和GetKeyUp分別代表

按鍵被按下、按著以及松開三種狀態(tài)。項目實現(xiàn)Step4,掛載代碼運行場景進行測試。項目實現(xiàn)Step5,繼續(xù)編寫代碼,使用Input調(diào)用鼠標點擊事件,同理有按下,按著和抬起三種狀態(tài),在此不一一贅述,而GetMouseButton方法所帶的參數(shù)中0,1,2分別代表著鼠標的左鍵、右鍵、和中鍵。項目實現(xiàn)Step6,再次運行場景進行測試。項目實現(xiàn)Step7,新建代碼OnMouseController,使用函數(shù)方法來用來獲取點擊物品事件。項目實現(xiàn)Step8,刪除代碼KeyboardController。新建Cube,Sphere,Capsule等3D物體,給他們重命名并掛載代碼后進行測試??偨Y(jié)4總結(jié)通過以上的學習,我們了解了鼠標事件和鍵盤事件的調(diào)用方法。我們根據(jù)以上學習的基礎,可以搭配自己的想法以及其他知識點,就可以做出一個有趣的小作品了。總結(jié)起來,可以大致分為兩種,一、使用Input方法在Update函數(shù)中調(diào)用鼠標和鍵盤事件。二、使用OnMouseDown等函數(shù)獲取鼠標點擊某個物體的時間。THANKYOU人機交互技術(shù)AI尋路系統(tǒng)(入門)目錄Catalog1教學目的與要求2重點、難點3教學進程安排4課后學習任務布置教學目的與要求01.本章將介紹自動尋路的作用和基礎用法。目的:教學目的與要求學生能夠根據(jù)學習內(nèi)容進行AI尋路的實現(xiàn),完成課堂的學習與討論,并且能夠積極完成課后作業(yè)。要求:重點、難點02.掌握地形烘焙和尋路組件的使用重點:重點、難點掌握非水平地形尋路的烘焙技術(shù)。難點:教學進程安排03.尋路簡介Unity3d中的導航網(wǎng)格Navmesh廣泛應用于動態(tài)物體實現(xiàn)自動尋路的功能,屬于人工智能的一種,通過此功能可以使智能AI自行繞過障礙或翻越墻體等,最終到達目標地點或找到目標對象,是一種既方便,有簡單,同時還很實用的功能。尋路功能的組成尋路功能主要由三方面組成:1.Navigation地形烘焙。地形烘焙的作用是限定尋路范圍,只有在已經(jīng)經(jīng)過烘焙的地形上,AI才可以通過尋路找到目標。2.NavmeshAgent尋路組件。其次,NavmeshAgent是控制AI進行尋路的組件,只有掛載了NavmeshAgent組件的AI會通過尋路尋找他的目標。3.代碼控制。最后,通過代碼控制可以確定NavmeshAgent尋路的目標,也可以限定其尋路的條件。Navigation烘焙說明Navigation不只是使AI可以在水平地形上尋路那么簡單,它還有許多的屬性值,通過調(diào)節(jié)這些值我們可以調(diào)整地形烘焙時的高度,半徑,角度等,其中如果有坡度較大的地形需要烘焙,我們只需要將

Bake中的MaxSlope值調(diào)至最大值就可以讓AI自行爬坡了。除此外,還可以通過調(diào)節(jié)其他數(shù)值實現(xiàn)AI的跳躍墜落等行為,請同學們自行探索。課后學習任務布置實現(xiàn)水平地形的尋路功能,探討Navigation屬性值的作用。THANKYOU人機交互技術(shù)AI尋路系統(tǒng)(進階)目錄Catalog1教學目的與要求2重點、難點3教學進程安排4課后學習任務布置教學目的與要求01.本章將更深入地介紹AI尋路系統(tǒng),更有深度的探究尋路組件的其他功能。目的:教學目的與要求學生能夠深入了解尋路系統(tǒng),完成課堂的學習與討論,并且能夠積極完成課后作業(yè)。要求:重點、難點02.在尋路系統(tǒng)入門的基礎上進行進階學習,學習尋路系統(tǒng)的其他功能。重點:重點、難點尋路系統(tǒng)的整理。難點:教學進程安排03.梯子效果爬坡功能允許攀爬的只有最大限度為60°的坡度,當面對更大的坡度時,MaxSlope就已經(jīng)無法滿足我們的需求了。這時我們需要用到一個新的組件:OffMeshLink。我們只需要給梯子添加OffMeshLink組件并掛載底端和頂端的空物體,我們就可以完成爬梯子的效果,實現(xiàn)垂直爬坡了。尋路路線限制到此為止我們學習的尋路都是在同一片烘焙區(qū)域,通過最短路徑自行尋找目標的AI行為,但有時候我們需要限定不同的AI可以走的路線進行區(qū)分,這種情況我們就需要用到Navigation組件的Areas功能了。在Areas中我們可以添加烘焙區(qū)域名稱,添加后Object中可以給烘焙區(qū)域限定區(qū)域名稱,最后就可以在NavmeshAgent里面選擇行走區(qū)域來限定AI的行走路線了。道路阻斷在尋路系統(tǒng)中,只要AI開始尋路,就會“一去不回頭”。要怎么做才能在它尋路過程中對它進行中途阻止呢,我們只需要在相應的路段上添加一個名為NavMeshObstacle的組件,這一段路就會阻止AI通過了,再通過代碼控制該組件的顯隱性,就可以控制AI尋路時,相應路段的阻斷和連通了。課后學習任務布置學生分組討論,并整理進階尋路實現(xiàn)過程的筆記。人機交互技術(shù)群組行為教學目的與要求1重點難點2教學進程安排3課后學習任務布置4目錄CONTENTS教學目的與要求1教學目的與要求目的:本章將介紹群組行為功能的實現(xiàn)方法,讓學生了解群組行為的實現(xiàn)流程。要求:學生能夠使用群組行為模擬AI行為,完成課堂的學習與討論,并且能夠積極完成課后作業(yè)。重點難點2重點難點重點:在本章中我們要學會力學的簡單運算,組的管理方法,完成對整個群組的控制。難點:整理邏輯的整理,權(quán)重的把控。教學進程安排3群組行為的作用群組行為隊列聚集分離力學計算距離檢測碰撞組管理當有一群的人或者動物與環(huán)境進行真實的交互的時候,我們要想模擬出最真實的行為,就要讓群體的行為符合群體的特征。在不加入unity3d環(huán)境中的人工智能的情況下,用簡單的視覺模糊來進行鳥群的行為模擬。主要方法隊列的力力學計算聚集的力距離檢測分離的力碰撞組管理整個集體的前進方向恒定,不會因為個體而進行變動。每個個體都會向集體匯聚,不會脫離大部隊,分散太遠。每個個體都會與其他個體保持一定距離,不會非??拷?。通過牛頓第二定律計算每一個個體的前進方向和速度每一個個體通過距離檢測判斷自身附近是否有其他個體將附近的同類放到一個碰撞組中進行管理。群組行為的實現(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();//清除隊列數(shù)據(jù)

Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代碼的作用:用來檢測以某個位置為半徑發(fā)射一個圓以檢測球體內(nèi)有哪些游戲物體(用來做物理檢測,得到的結(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++){//計算位置距離

Vector3dir=transform.position-Duilie_Partner[i].transform.position;Lisan_Force+=dir.normalized/dir.magnitude;//計算所有鄰居向前的向量和

}if(Duilie_Partner.Count>0){Lisan_Force*=Lisan_Weight;SumForce+=Lisan_Force;}}定義計算合力的函數(shù)并添加分離的力:群組行為的實現(xiàn)定義隊列的力變量:publicfloatDuilie_Distance=6;//檢測距離publicList<GameObject>Duilie_Partner=newList<GameObject>();publicfloatDuilie_Weight=3;publicVector3Duilie_Force=Vector3.zero;SumForce=Vector3.zero;

Lisan_Force=Vector3.zero;Duilie_Partner.Clear();//清除隊列數(shù)據(jù)

Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代碼的作用:用來檢測以某個位置為半徑發(fā)射一個圓以檢測球體內(nèi)有哪些游戲物體(用來做物理檢測,得到的結(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++){//計算位置距離Vector3dir=transform.position-Duilie_Partner[i].transform.position;Lisan_Force+=dir.normalized/dir.magnitude;//計算所有鄰居向前的向量和

}if(Duilie_Partner.Count>0){Lisan_Force*=Lisan_Weight;SumForce+=Lisan_Force;}}在合力計算中添加隊列的力:群組行為的實現(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();//清除隊列數(shù)據(jù)

Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代碼的作用:用來檢測以某個位置為半徑發(fā)射一個圓以檢測球體內(nèi)有哪些游戲物體(用來做物理檢測,得到的結(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++){//計算位置距離

Vector3dir=transform.position-Duilie_Partner[i].transform.position;Lisan_Force+=dir.normalized/dir.magnitude;//計算所有鄰居向前的向量和

}if(Duilie_Partner.Count>0){Lisan_Force*=Lisan_Weight;SumForce+=Lisan_Force;}}在合力計算中添加聚集的力:群組行為的實現(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)用計算合力的函數(shù):課后學習任務布置4課后學習任務布置學生分組討論,整理群組行為實現(xiàn)過程的筆記并理清整個功能的邏輯。THANKYOU人機交互技術(shù)Human-ComputerInteractionTechnology——基于LeapMotion的《夢幻森林》案例學習目的和要求1

重點和難點2《夢幻森林》LeapMotion和完善3

課后總結(jié)4目錄CONTENTS學習指導建議重點掌握LeapMotion基本手勢控制函數(shù),能夠替換不同的手部模型控制場景中的物體將LeapMotion與Unity3D進行連接,能夠理解相關的參數(shù)設定,并且能夠熟練的掌握位移、換色等基本操作強化練習LeapMotion的使用,通過相關的粒子特效案例增加趣味性、通過群組行為的控制使其和其他知識單元能夠緊密結(jié)合,并且能夠掌握相關的可穿戴設備的優(yōu)缺點,參加各項學科賽事本章的學習建議在實驗室的環(huán)境中進行,能夠結(jié)合相應的設備進行不斷的測試,同時本章的案例源代碼在本書的配套光盤中,課后的案例和課程回顧等保存在本書的慕課資源中,建議讀者先學習本章的基礎知識,在最后通過線上教學資源進行不斷的提升和課程的內(nèi)容的加強練習。

學習目的和要求1學習目的和要求目的:

通過對《夢幻森林》案例的分析和學習,了解完整項目的制作過程,學習交互設計思路。將素材與技術(shù)更好的結(jié)合。目的:

通過對《夢幻森林》案例的分析和學習,了解完整項目的制作過程,學習交互設計思路。將素材與技術(shù)更好的結(jié)合。要求:

基于《夢幻森林》案例的了解結(jié)合對LeapMotion的學習,設計并創(chuàng)新新的交互創(chuàng)意和ji'yu玩法。

重點和難點2重點和難點重點:

掌握LeapMotion的基礎知識,學會靈活運用,完善項目。難點:

對LeapMotion的運用,研究出符合自己主題的功能,設計合理有趣。LeapMotion和項目完善3LeapMotion和項目完善本節(jié)主要是對《夢幻森林》案例的最后一個交互模塊LeapMotion交互和整個項目最好完善部分的分析,在《夢幻森林》的LeapMotion中,用簡單的交互方式,實現(xiàn)蝴蝶群對LeapMotion手部的追蹤。LeapMotion和項目完善首先,先導入LeapMotion,進入場景測試設備是否正常。,正常狀態(tài)如下圖所示將3D場景導入到LeapMotion場景中,導入蝴蝶資源包,添加進入場景中。LeapMotion和項目完善LeapMotion和項目完善以下腳本負責控制蝴蝶的群組行為控制。usingSystem.Collections;usingSystem.Collections.Generic;usingunityEngine;publicclassBufferController:MonoBehaviour{publicfloatspeed=1;publicVector3velocity=Vector3.forward;privateVector3startVelocity;publicTransformtarget;publicVector3sumForce=Vector3.zero;

LeapMotion和項目完善

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;//隊列的力publicfloatcohesionWeight=1;publicVector3cohesionForce=Vector3.zero;//聚合的力publicfloatcheckInterval=0.2f;publicfloatanimRandomTime=2f;

privateAnimationanim;

LeapMotion和項目完善

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和項目完善//計算分離的力seprationNeighbors.Clear();Collider[]colliders=Physics.OverlapSphere(transform.position,separationDistance);foreach(Collidercincolliders){if(c!=null&&c.gameObject!=this.gameObject){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論