專利名稱:虛擬對象操縱的制作方法
虛擬對象操縱
背景技術(shù):
諸如計算機游戲之類的許多計算應(yīng)用向用戶呈現(xiàn)虛擬環(huán)境或世界。這些環(huán)境通常包含用戶可與之交互的虛擬對象。通常,這種交互通過諸如控制器、遙控器、鍵盤、鼠標等之類的輸入設(shè)備而發(fā)生。不幸的是,這些輸入方法并不很好地與諸如按壓控制器上的按鈕以打開門之類的正被執(zhí)行的動作相關(guān)。發(fā)明概述因此,使得用戶能夠使用用戶控制的物理對象(如他的手)與虛擬環(huán)境中的光標之間的映射來與虛擬環(huán)境中的虛擬對象交互將是一個改進。本文揭示了執(zhí)行這種虛擬對象操縱的方法、系統(tǒng)和計算機可讀介質(zhì)。在一示例性實施例中,用戶的物理控制器與虛擬環(huán)境中的光標相關(guān)聯(lián)。接收用戶控制器輸入,從中確定相應(yīng)的光標操縱。在光標操縱對應(yīng)于對虛擬對象的操縱時,對該虛擬對象執(zhí)行該操縱,且結(jié)果顯示在顯示設(shè)備上。本領(lǐng)域技術(shù)人員之一可理解,本公開的一個或更多個方面可包括但不限于用于實現(xiàn)本公開的本文所提及的電路和/或編程;該電路和/或編程實質(zhì)上可以是配置成實現(xiàn)本文所提及的方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計者的設(shè)計選擇。以上是概述,并且因此必然包含細節(jié)的簡化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說明性的并且決不旨在是限制性的。
參考附圖來進一步描述根據(jù)本說明書的用于虛擬對象操縱的系統(tǒng)、方法和計算機可讀介質(zhì),在附圖中圖IA和IB示出了伴隨用戶玩游戲的目標識別、分析和跟蹤系統(tǒng)的示例實施例。圖2示出了可在目標識別、分析和跟蹤系統(tǒng)中使用的捕捉設(shè)備的示例實施例。圖3A示出了可用于在目標識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算環(huán)境的示例實施例。圖IBB示出了可用于在目標識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算環(huán)境的另一示例實施例。圖4A示出了從圖2的目標識別、分析和跟蹤系統(tǒng)生成的用戶的骨架映射。圖5示出了捕捉用戶控制器操縱并將其映射到對虛擬對象的光標操縱的系統(tǒng)。圖6示出了用于虛擬對象操縱的示例操作過程。說明性實施例的詳細描述如本文中將描述的,用戶可通過執(zhí)行一個或多個姿勢來控制在諸如游戲控制臺、 計算機等計算環(huán)境上執(zhí)行的應(yīng)用。根據(jù)一個實施例,姿勢可由例如捕捉設(shè)備來接收。例如, 捕捉設(shè)備可捕捉場景的深度圖像。在一個實施例中,捕捉設(shè)備可以確定場景中的一個或多個目標或?qū)ο笫欠駥?yīng)于諸如用戶等人類目標。為了確定場景中的目標或?qū)ο笫欠駥?yīng)于人類目標,可對每個目標進行泛色填充并將其與人體模型的圖案作比較。然后可掃描匹配人體模型的每一目標或?qū)ο髞砩膳c其相關(guān)聯(lián)的骨架模型。該骨架模型然后可被提供給計算環(huán)境,使得計算環(huán)境可跟蹤該骨架模型,呈現(xiàn)與該骨架模型相關(guān)聯(lián)的化身,以及可基于例如用戶的已經(jīng)從該骨架模型中識別出的姿勢來確定要在計算環(huán)境上執(zhí)行的應(yīng)用中執(zhí)行那些控制。姿勢識別器引擎(其架構(gòu)在下文中更完整地描述)被用于確定用戶何時做出了某
一姿勢。圖IA和IB示出伴隨用戶18玩拳擊游戲的目標識別、分析和跟蹤系統(tǒng)10的配置的示例實施例。在一示例實施例中,目標識別、分析和跟蹤系統(tǒng)10可用于識別、分析和/或跟蹤諸如用戶18等的人類目標。如圖IA所示,目標識別、分析和跟蹤系統(tǒng)10可包括計算環(huán)境12。計算環(huán)境12可以是計算機、游戲系統(tǒng)或控制臺等等。根據(jù)一示例實施例,計算環(huán)境12可包括硬件組件和 /或軟件組件,使得計算環(huán)境12可用于執(zhí)行諸如游戲應(yīng)用、非游戲應(yīng)用等的應(yīng)用。如圖IA所示,目標識別、分析和跟蹤系統(tǒng)10還可包括捕捉設(shè)備20。捕捉設(shè)備20 可以是例如相機,該相機可用于在視覺上監(jiān)視諸如用戶18等一個或多個用戶,以使得可以捕捉、分析并跟蹤一個或多個用戶所執(zhí)行的姿勢,以執(zhí)行應(yīng)用中的一個或多個控制或動作, 如將在下面更詳細地描述的。根據(jù)一個實施例,目標識別、分析和跟蹤系統(tǒng)10可連接到可向諸如用戶18等的用戶提供游戲或應(yīng)用視覺和/或音頻的視聽設(shè)備16,如電視機、監(jiān)視器、高清電視機(HDTV) 等。例如,計算環(huán)境12可包括諸如圖形卡等視頻適配器和/或諸如聲卡等音頻適配器,這些適配器可提供與游戲應(yīng)用、非游戲應(yīng)用等相關(guān)聯(lián)的視聽信號。視聽設(shè)備16可從計算環(huán)境 12接收視聽信號,然后可向用戶18輸出與該視聽信號相關(guān)聯(lián)的游戲或應(yīng)用視覺和/或音頻。根據(jù)一個實施例,視聽設(shè)備16可經(jīng)由例如,S-視頻電纜、同軸電纜、HDMI電纜、DVI電纜、VGA電纜等連接到計算環(huán)境12。如圖IA和IB所示,目標識別、分析和跟蹤系統(tǒng)10可用于識別、分析和/或跟蹤諸如用戶18等的人類目標。例如,可使用捕捉設(shè)備20來跟蹤用戶18,以使得可將用戶18的移動解釋為可用于影響由計算機環(huán)境12執(zhí)行的應(yīng)用的控制。因而,根據(jù)一個實施例,用戶 18可移動他或她的身體來控制應(yīng)用。如圖IA和IB所示,在一示例實施例中,在計算環(huán)境12上執(zhí)行的應(yīng)用可以是用戶 18可能正在玩的拳擊游戲。例如,計算環(huán)境12可使用視聽設(shè)備16來向用戶18提供拳擊對手22的視覺表示。計算環(huán)境12還可使用視聽設(shè)備16來提供用戶18可通過他的或她的移動來控制的玩家化身M的視覺表示。例如,如圖IB所示,用戶18可在物理空間中揮重拳來使得玩家化身M在游戲空間中揮重拳。因此,根據(jù)一示例實施例,目標識別、分析和跟蹤系統(tǒng)10的計算環(huán)境12和捕捉設(shè)備20可用于識別和分析用戶18在物理空間中的重拳,從而使得該重拳可被解釋為對游戲空間中的玩家化身M的游戲控制。用戶18的其他移動也可被解釋為其他控制或動作,諸如上下快速擺動、閃避、滑步、格擋、用拳猛擊或揮動各種不同力度的重拳等控制。此外,某些移動可被解釋為可對應(yīng)于除控制玩家化身M之外的動作的控制。例如,玩家可以使用運動來結(jié)束、暫停或保存游戲、選擇級別、查看高分、與朋友交流等。在各示例實施例中,諸如用戶18等的人類目標可具有一物體。在這些實施例中, 電子游戲的用戶可手持物體從而可以使用玩家和物體的運動來調(diào)整和/或控制游戲的參數(shù)。例如,可以跟蹤并利用玩家手持球拍的運動來控制電子運動游戲中的屏幕上球拍。在另一示例實施例中,可以跟蹤并利用玩家手持物體的運動來控制電子格斗游戲中的屏幕上武器。根據(jù)其他示例實施例,目標識別、分析和跟蹤系統(tǒng)10還可用于將目標移動解釋為游戲領(lǐng)域之外的操作系統(tǒng)和/或應(yīng)用控制。例如,事實上操作系統(tǒng)和/或應(yīng)用的任何可控方面可由諸如用戶18等目標的移動來控制。圖2示出可在目標識別、分析和跟蹤系統(tǒng)10中使用的捕捉設(shè)備20的示例實施例。 根據(jù)一示例實施例,捕捉設(shè)備20可被配置成經(jīng)由任何合適的技術(shù),包括例如飛行時間、結(jié)構(gòu)化光、立體圖像等來捕捉包括深度圖像的帶有深度信息的視頻,該深度信息可包括深度值。根據(jù)一實施例,捕捉設(shè)備20可將所計算的深度信息組織為“Z層”,或可與從深度相機沿其視線延伸的Z軸垂直的層。如圖2所示,捕捉設(shè)備20可包括圖像相機組件22。根據(jù)一個示例實施例,圖像照相機組件22可以是可捕捉場景的深度圖像的深度相機。深度圖像可包括被捕捉的場景的二維O-D)像素區(qū)域,其中2-D像素區(qū)域中的每一個像素都可以(例如以厘米、毫米等等為單位)表示來自相機的被捕捉的場景中的對象的長度。如圖2所示,根據(jù)一示例實施例,圖像相機組件22可包括可用于捕捉場景的深度圖像的頂光組件對、三維(3-D)相機沈、和RGB相機觀。例如,在飛行時間分析中,捕捉設(shè)備20的頂光組件M可以將紅外光發(fā)射到場景上,然后,可以使用傳感器(未示出),用例如3-D相機26和/或RGB相機觀,來檢測從場景中的一個或多個目標和對象的表面反向散射的光。在某些實施例中,可以使用脈沖式紅外光從而可以測量出射光脈沖和相應(yīng)的入射光脈沖之間的時間差并將其用于確定從捕捉設(shè)備20到場景中的目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。另外,在其他示例實施例中,可將出射光波的相位與入射光波的相位進行比較來確定相移。然后可以使用該相移來確定從捕捉設(shè)備到目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭?br>
1 O根據(jù)另一示例實施例,可使用飛行時間分析,通過經(jīng)由包括例如快門式光脈沖成像的各種技術(shù)來分析反射光束隨時間的強度變化以間接地確定從捕捉設(shè)備20到目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。在另一示例實施例中,捕捉設(shè)備20可使用結(jié)構(gòu)化光來捕捉深度信息。在該分析中,圖案化光(即,被顯示為諸如網(wǎng)格圖案或條紋圖案等已知圖案的光)可經(jīng)由例如頂光組件M被投影到場景上。在撞擊到場景中的一個或多個目標或物體的表面時,作為響應(yīng), 圖案可變形。圖案的這種變形可由例如3-D相機沈和/或RGB相機觀來捕捉,然后可被分析來確定從捕捉設(shè)備到目標或?qū)ο笊系奶囟ㄎ恢玫奈锢砭嚯x。根據(jù)另一實施例,捕捉設(shè)備20可包括兩個或更多個物理上分開的相機,這些相機可從不同角度查看場景來獲得可被解析以生成深度信息的視覺立體數(shù)據(jù)。捕捉設(shè)備20還可包括話筒30。話筒30可包括可接收聲音并將其轉(zhuǎn)換成電信號的換能器或傳感器。根據(jù)一個實施例,與接收聲音的單個話筒相比,可使用話筒30的陣列來降低反饋或音頻失真。另外,話筒30可用于接收也可由用戶提供的音頻信號,以控制可由計算環(huán)境12執(zhí)行的諸如游戲應(yīng)用、非游戲應(yīng)用等應(yīng)用。在一示例實施例中,捕捉設(shè)備20還可以包括可與圖像相機組件22進行可操作的通信的處理器32。處理器32可包括可執(zhí)行指令的標準處理器、專用處理器、微處理器等,這些指令可包括用于接收深度圖像的指令、用于確定合適的目標是否可被包括在深度圖像中的指令、用于將合適的目標轉(zhuǎn)換成該目標的骨架表示或模型的指令、或任何其他合適的指令。捕捉設(shè)備20還可以包括存儲器組件34,該存儲器組件34可以存儲可以由處理器 32執(zhí)行的指令,由3-D相機或RGB相機捕捉到的圖像或圖像的幀,或任何其他合適的信息、 圖像等等。根據(jù)一個示例實施例,存儲器組件34可包括隨機存取存儲器(RAM)、只讀存儲器 (ROM)、高速緩存、閃存、硬盤或任何其他合適的存儲組件。如圖2所示,在一個實施例中,存儲器組件34可以是與圖像捕捉組件22和處理器32進行通信的單獨的組件。根據(jù)另一實施例,存儲器組件34可被集成到處理器32和/或圖像捕捉組件22中。如圖2所示,捕捉設(shè)備20可經(jīng)由通信鏈路36與計算環(huán)境12進行通信。通信鏈路36可以是包括例如USB連接、火線連接、以太網(wǎng)電纜連接等的有線連接和/或諸如無線 802. lib,802. llg、802. Ila或802. Iln連接等無線連接。根據(jù)一個實施例,計算環(huán)境12可以向捕捉設(shè)備20提供時鐘,可以使用該時鐘來通過通信鏈路36確定何時捕捉,例如,場景。另外,捕捉設(shè)備20可以通過通信鏈路36向計算環(huán)境12提供深度信息和由例如 3-D相機沈和/或RGB相機觀捕捉到的圖像,以及可以由捕捉設(shè)備20生成的骨架模型。 計算環(huán)境12然后可使用該骨架模型、深度信息和捕捉的圖像來例如識別用戶姿勢以及作為響應(yīng)來控制諸如游戲或文字處理程序等應(yīng)用。例如,如圖2所示,計算環(huán)境12可包括姿勢識別器引擎190。姿勢識別器引擎190可包括姿勢過濾器集合,每一姿勢過濾器包括關(guān)于骨架模型(在用戶移動時)可執(zhí)行的姿勢的信息。可將由相機26J8和設(shè)備20捕捉的骨架模型形式的數(shù)據(jù)以及與其相關(guān)聯(lián)的移動同姿勢識別器引擎190中的姿勢過濾器進行比較來標識用戶(如骨架模型所表示的)何時執(zhí)行了一個或多個姿勢。那些姿勢可與應(yīng)用的各種控制相關(guān)聯(lián)。因此,計算環(huán)境12可使用姿勢識別器引擎190來解釋骨架模型的移動并基于該移動來控制應(yīng)用。圖3A示出了可用于在目標識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢的計算環(huán)境的示例實施例。上面參考圖1A-2所描述的諸如計算環(huán)境12等的計算環(huán)境可以是諸如游戲控制臺等的多媒體控制臺100。如圖3A所示,多媒體控制臺100具有含有一級高速緩存102、二級高速緩存104和閃存R0M(只讀存儲器)106的中央處理單元(CPU) 101。一級高速緩存102和二級高速緩存104臨時存儲數(shù)據(jù)并因此減少存儲器訪問周期數(shù),由此改進處理速度和吞吐量。CPUlOl可以設(shè)置成具有一個以上的內(nèi)核,以及由此的附加的一級和二級高速緩存102和104。閃存ROM 106可存儲在當多媒體控制臺100通電時的引導過程的初始階段期間加載的可執(zhí)行代碼。圖形處理單元(GPU) 108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速、高分辨率圖形處理的視頻處理流水線。數(shù)據(jù)經(jīng)由總線從圖形處理單元108輸送到視頻編碼器/視頻編解碼器114。視頻處理流水線向A/V(音頻/視頻)端口 140輸出數(shù)據(jù),以便傳輸?shù)诫娨暀C或其他顯示器。存儲器控制器110連接到GPU 108以方便處理器訪問各種類型的存儲器112,諸如但不局限于RAM(隨機存取存儲器)。多媒體控制臺100包括較佳地在模塊118上實現(xiàn)的I/O控制器120、系統(tǒng)管理控制器122、音頻處理單元123、網(wǎng)絡(luò)接口控制器124、第一 USB主控制器126、第二 USB控制器
7128和前面板I/O子部件130。USB控制器126和128用作外圍控制器142 (1)-142 (2)、無線適配器148、和外置存儲器設(shè)備146(例如閃存、外置⑶/DVD ROM驅(qū)動器、可移動介質(zhì)等) 的主機。網(wǎng)絡(luò)接口 1 和/或無線適配器148提供對網(wǎng)絡(luò)(例如,因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問并且可以是包括以太網(wǎng)卡、調(diào)制解調(diào)器、藍牙模塊、電纜調(diào)制解調(diào)器等的各種不同的有線或無線適配器組件中任何一種。提供系統(tǒng)存儲器143來存儲在引導過程期間加載的應(yīng)用數(shù)據(jù)。提供了介質(zhì)驅(qū)動器 144,其可以包括DVD/CD驅(qū)動器、硬盤驅(qū)動器,或其他可移動介質(zhì)驅(qū)動器等等。介質(zhì)驅(qū)動器 144可以在多媒體控制臺100內(nèi)部或外部。應(yīng)用數(shù)據(jù)可經(jīng)由介質(zhì)驅(qū)動器144訪問,以由多媒體控制臺100執(zhí)行、回放等。介質(zhì)驅(qū)動器144經(jīng)由諸如串行ATA總線或其他高速連接(例如IEEE 1394)等總線連接到I/O控制器120。系統(tǒng)管理控制器122提供涉及確保多媒體控制臺100的可用性的各種服務(wù)功能。 音頻處理單元123和音頻編解碼器132形成具有高保真度和立體聲處理的對應(yīng)的音頻處理流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路在音頻處理單元123與音頻編解碼器132之間傳輸。音頻處理流水線將數(shù)據(jù)輸出到A/V端口 140以供外置音頻播放器或具有音頻能力的設(shè)備再現(xiàn)。前面板I/O子部件130支持暴露在多媒體控制臺100的外表面上的電源按鈕150 和彈出按鈕152以及任何LED(發(fā)光二極管)或其他指示器的功能。系統(tǒng)供電模塊136向多媒體控制臺100的組件供電。風扇138冷卻多媒體控制臺100內(nèi)的電路。CPU 101、GPU 108、存儲器控制器110、和多媒體控制臺100內(nèi)的各個其他組件經(jīng)由一條或多條總線互連,包括串行和并行總線、存儲器總線、外圍總線、和使用各種總線架構(gòu)中任一種的處理器或局部總線。作為示例,這些架構(gòu)可以包括外圍部件互連(PCI)總線、 PCI-Express 總線等。當多媒體控制臺100通電時,應(yīng)用數(shù)據(jù)可從系統(tǒng)存儲器143加載到存儲器112和/ 或高速緩存102、104中并在CPU 101上執(zhí)行。應(yīng)用可呈現(xiàn)在導航到多媒體控制臺100上可用的不同媒體類型時提供一致的用戶體驗的圖形用戶界面。在操作中,介質(zhì)驅(qū)動器144中包含的應(yīng)用和/或其他媒體可從介質(zhì)驅(qū)動器144啟動或播放,以向多媒體控制臺100提供附加功能。多媒體控制臺100可通過將該系統(tǒng)簡單地連接到電視機或其他顯示器而作為獨立系統(tǒng)來操作。在該獨立模式中,多媒體控制臺100允許一個或多個用戶與該系統(tǒng)交互、看電影、或聽音樂。然而,隨著通過網(wǎng)絡(luò)接口 1 或無線適配器148可用的寬帶連接的集成, 多媒體控制臺100還可作為較大網(wǎng)絡(luò)社區(qū)中的參與者來操作。當多媒體控制臺100通電時,可以保留設(shè)定量的硬件資源以供多媒體控制臺操作系統(tǒng)作系統(tǒng)使用。這些資源可包括存儲器的保留量(諸如,16MB)、CPU和GPU周期的保留量(諸如,5% )、網(wǎng)絡(luò)帶寬的保留量(諸如,Slcbs),等等。因為這些資源是在系統(tǒng)引導時間保留的,所保留的資源對于應(yīng)用視角而言是不存在的。具體地,存儲器保留較佳地足夠大,以包含啟動內(nèi)核、并發(fā)系統(tǒng)應(yīng)用和驅(qū)動程序。 CPU保留較佳地為恒定,使得若所保留的CPU用量不被系統(tǒng)應(yīng)用使用,則空閑線程將消耗任何未使用的周期。對于GPU保留,通過使用GPU中斷來顯示由系統(tǒng)應(yīng)用生成的輕量消息(例如,彈出窗口),以調(diào)度代碼來將彈出窗口呈現(xiàn)為覆蓋圖。覆蓋圖所需的存儲器量取決于覆蓋區(qū)域大小,并且覆蓋圖較佳地與屏幕分辨率成比例縮放。在并發(fā)系統(tǒng)應(yīng)用使用完整用戶界面的情況下,優(yōu)選使用獨立于應(yīng)用分辨率的分辨率。定標器可用于設(shè)置該分辨率,從而無需改變頻率并引起TV重新同步。在多媒體控制臺100引導且系統(tǒng)資源被保留之后,就執(zhí)行并發(fā)系統(tǒng)應(yīng)用來提供系統(tǒng)功能。系統(tǒng)功能被封裝在上述所保留的系統(tǒng)資源中執(zhí)行的一組系統(tǒng)應(yīng)用中。操作系統(tǒng)內(nèi)核標識是系統(tǒng)應(yīng)用線程而非游戲應(yīng)用線程的線程。系統(tǒng)應(yīng)用優(yōu)選地被調(diào)度為在預定時間并以預定時間間隔在CPU 101上運行,以便為應(yīng)用提供一致的系統(tǒng)資源視圖。進行調(diào)度是為了把由在控制臺上運行的游戲應(yīng)用所引起的高速緩存分裂最小化。當并發(fā)系統(tǒng)應(yīng)用需要音頻時,則由于時間敏感性而異步調(diào)度音頻處理給游戲應(yīng)用。多媒體控制臺應(yīng)用管理器(如下所述)在系統(tǒng)應(yīng)用活動時控制游戲應(yīng)用的音頻水平 (例如,靜音、衰減)。輸入設(shè)備(例如,控制器142(1)和142( )由游戲應(yīng)用和系統(tǒng)應(yīng)用共享。輸入設(shè)備不是所保留的資源,但卻在系統(tǒng)應(yīng)用和游戲應(yīng)用之間切換以使其各自具有設(shè)備的焦點。 應(yīng)用管理器較佳地控制輸入流的切換,而無需知曉游戲應(yīng)用的知識,并且驅(qū)動程序維護有關(guān)焦點切換的狀態(tài)信息。相機26J8和捕捉設(shè)備20可以為控制臺100定義額外的輸入設(shè)備。圖IBB示出了可用于在目標識別、分析和跟蹤系統(tǒng)中解釋一個或多個姿勢計算環(huán)境220的另一示例實施例,該計算環(huán)境可以是圖1A-2所示的計算環(huán)境12。計算系統(tǒng)環(huán)境 220只是合適的計算環(huán)境的一個示例,并且不旨在對所公開的主題的使用范圍或功能提出任何限制。也不應(yīng)該將計算環(huán)境220解釋為對示例性操作環(huán)境220中示出的任一組件或其組合有任何依賴性或要求。在某些實施例中,所描繪的各種計算元素可包括被配置成實例化本公開的各具體方面的電路。例如,本公開中使用的術(shù)語電路可包括被配置成通過固件或開關(guān)來執(zhí)行功能的專用硬件組件。其他示例中,術(shù)語電路可包括由實施可用于執(zhí)行功能的邏輯的軟件指令配置的通用處理單元、存儲器等。在其中電路包括硬件和軟件的組合的示例實施例中,實施者可以編寫體現(xiàn)邏輯的源代碼,且源代碼可以被編譯為可以由通用處理單元處理的機器可讀代碼。因為本領(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進化到硬件、軟件或硬件/軟件組合之間幾乎沒有差別的地步,因而選擇硬件或是軟件來實現(xiàn)具體功能是留給實現(xiàn)者的設(shè)計選擇。更具體地,本領(lǐng)域技術(shù)人員可以明白軟件進程可被變換成等價的硬件結(jié)構(gòu),而硬件結(jié)構(gòu)本身可被變換成等價的軟件進程。因此,對于硬件實現(xiàn)還是軟件實現(xiàn)的選擇是設(shè)計選擇并留給實現(xiàn)者。在圖;3B中,計算環(huán)境220包括計算機Ml,其通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能由計算機241訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。系統(tǒng)存儲器222包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),如只讀存儲器(ROM) 223和隨機存取存儲器(RAM06O?;据斎?輸出系統(tǒng)224(BI0S)包括如在啟動時幫助在計算機Ml內(nèi)的元件之間傳輸信息的基本例程,它通常儲存在ROM 223中。RAM 260通常包含處理單元259可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖3B示出了操作系統(tǒng)225、應(yīng)用程序226、其它程序模塊227和程序數(shù)據(jù)228。計算機241也可以包括其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖3B示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤驅(qū)動器238,對可移動、非易失性磁盤邪4進行讀寫的磁盤驅(qū)動器239,以及對諸如CD ROM或其它光學介質(zhì)等可移動、非易失性光盤253進行讀寫的光盤驅(qū)動器M0。可在示例性操作環(huán)境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器238通常由諸如接口 234的不可移動存儲器接口連接至系統(tǒng)總線221,并且磁盤驅(qū)動器239和光盤驅(qū)動器240通常由諸如接口 235的可移動存儲器接口連接至系統(tǒng)總線221。以上討論并在圖;3B中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機241 提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲。在圖3B中,例如,硬盤驅(qū)動器238被示為存儲操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256和程序數(shù)據(jù)255。注意,這些組件可以與操作系統(tǒng)225、應(yīng)用程序226、其他程序模塊227和程序數(shù)據(jù)2 相同, 也可以與它們不同。在此操作系統(tǒng)258、應(yīng)用程序257、其他程序模塊256以及程序數(shù)據(jù)255 被給予了不同的編號,以說明至少它們是不同的副本。用戶可以通過諸如鍵盤251和定點設(shè)備252 (通常被稱為鼠標、跟蹤球或觸摸墊)之類的輸入設(shè)備向計算機241輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、游戲桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。 這些和其他輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口 236連接至處理單元259,但也可以由諸如并行端口、游戲端口或通用串行總線(USB)等其他接口和總線結(jié)構(gòu)來進行連接。相機沈、觀和捕捉設(shè)備20可以為控制臺100定義額外的輸入設(shè)備。監(jiān)視器242或其他類型的顯示設(shè)備也通過諸如視頻接口 232的接口連接至系統(tǒng)總線221。除監(jiān)視器之外,計算機還可以包括可以通過輸出外圍接口 233連接的諸如揚聲器244和打印機243之類的其他外圍輸出設(shè)備。計算機241可使用至諸如遠程計算機246之類的一個或多個遠程計算機的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠程計算機246可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、 對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點,且通常包括許多或所有以上相對于計算機241描述的元件,盡管在圖3B中僅示出了存儲器存儲設(shè)備M7。圖;3B中所示的邏輯連接包括局域網(wǎng) (LAN)245和廣域網(wǎng)(WAN) M9,但也可以包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機241通過網(wǎng)絡(luò)接口或適配器237連接至LAN 2450當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機241通常包括調(diào)制解調(diào)器250或用于通過諸如因特網(wǎng)等WAN 249建立通信的其他手段。調(diào)制解調(diào)器250可以是內(nèi)置或外置的,它可以經(jīng)由用戶輸入接口 236或其他適當?shù)臋C制連接至系統(tǒng)總線221。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機 241所描述的程序模塊或其部分可被存儲在遠程存儲器存儲設(shè)備中。作為示例而非限制,圖 3B示出了遠程應(yīng)用程序248駐留在存儲器設(shè)備247上。應(yīng)當理解,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用在計算機之間建立通信鏈路的其他手段。圖4A描繪了可從捕捉設(shè)備20生成的用戶的示例骨架映射。在該實施例中,標識出各個關(guān)節(jié)和骨骼每一手302、每一前臂304、每一肘306、每一二頭肌308、每一肩310、每一髖312、每一大腿314、每一膝316、每一小腿318、每一足320、頭322、軀干324、脊椎的頂部3 和底部328,以及腰330。在跟蹤更多點的情況下,可標識出附加的特征,比如手指或腳趾的骨骼和關(guān)節(jié),或臉部的各個特征,如鼻和眼。
用戶可通過移動他的身體創(chuàng)建姿勢。姿勢包括用戶的運動或姿態(tài),其可被捕捉為圖像數(shù)據(jù)并解析其意義。姿勢可以是動態(tài)的,包括運動,如模仿扔球。姿勢可以是靜態(tài)姿態(tài),如在一個人的軀干3M前面交叉握住他的前臂304。姿勢也可結(jié)合道具,如通過揮動仿制的劍。姿勢可包括多于一個身體部位,如拍雙手302,或是較微小的運動,如撅起一個人的嘴唇。姿勢可用于一般計算上下文中的輸入。例如,手302或其他身體部位的各種運動可對應(yīng)于常見的系統(tǒng)級任務(wù),如在分層列表中向上或向下導航、打開文件、關(guān)閉文件和保存文件。姿勢也可在視頻游戲?qū)S蒙舷挛闹腥Q于游戲來使用。例如,對于駕駛游戲,手302 和腳320的各種運動可對應(yīng)于在一方向上操控車輛、換擋、加速和剎車。用戶可通過自己在原地行走或奔跑來生成對應(yīng)于行走或奔跑的姿勢。用戶可另選地提起并放下每一腿312-320來在不移動的情況下模擬行走。系統(tǒng)可通過分析每一髖312 和每一大腿314來解析該姿勢。當一個髖部-大腿角(如相對于垂直線測量的,其中站立的腿具有0°的髖部-大腿角,而向前水平伸展的腿具有90°的髖部-大腿角)超過相對于另一大腿的特定閾值時,可識別一步。行走或奔跑可在交替腿的某一數(shù)量的連續(xù)步之后被識別。兩個最近的步之間的時間可被認為是一周期。在不滿足閾值角度達某一數(shù)量的周期之后,系統(tǒng)可確定行走或奔跑姿勢已停止。給定“行走或奔跑”姿勢,應(yīng)用可為與該姿勢相關(guān)聯(lián)的應(yīng)用確定的參數(shù)設(shè)定值。這些參數(shù)可包括上述閾值角度、發(fā)起行走或奔跑姿勢所需的步數(shù)、結(jié)束姿勢的沒有發(fā)生步的周期數(shù)、以及確定姿勢是行走還是奔跑的閾值周期??熘芷诳蓪?yīng)于奔跑,因為用戶將快速地移動他的腿,而較慢的周期可對應(yīng)于行走。姿勢最初可以與一組默認參數(shù)相關(guān)聯(lián),應(yīng)用可用其自己的參數(shù)來覆蓋該組默認參數(shù)。在這一場景中,不迫使應(yīng)用提供參數(shù),但是應(yīng)用可改為使用一組允許在沒有應(yīng)用定義的參數(shù)的情況下識別姿勢的默認參數(shù)。有各種可以與姿勢相關(guān)聯(lián)的輸出??梢杂嘘P(guān)于姿勢是否正在發(fā)生的基線“是或否”。還可以有置信度水平,其對應(yīng)于用戶跟蹤的移動對應(yīng)于姿勢的可能性。這可以是范圍為0和1之間(包括端點)的浮點數(shù)的線性標度。在接收該姿勢信息的應(yīng)用不能接受假肯定作為輸入的應(yīng)用中,它可僅使用具有高置信度水平,如至少0.95的已識別的姿勢。在應(yīng)用必須識別姿勢的每一實例的情況下,即使以假肯定為代價,它可使用至少具有低得多的置信度水平的姿勢,如僅僅大于0. 2的那些姿勢。姿勢可具有在兩個最近步之間的時間的輸出,并且在僅注冊了第一步的情況下,這可被設(shè)為保留值,如-1(因為任何兩步之間的時間必須為正)。姿勢也可具有關(guān)于在最近一步期間達到的最高大腿角的輸出。另一示例性姿勢是“腳跟提起跳”。在該姿勢中,用戶可通過將他的腳跟提離地面, 但保持他的腳趾著地來創(chuàng)建該姿勢。另選地,用戶可跳向空中,其中他的腳320完全離開地面。該系統(tǒng)可通過分析肩310、髖312和膝316的角度關(guān)系來解析該姿勢的骨架,以查看它們是否在等于直立的對齊位置。然后,可監(jiān)視這些點和較高3 和較低3 脊椎點來發(fā)現(xiàn)任何向上加速。足夠的加速組合可觸發(fā)跳躍姿勢。給定該“腳跟提起跳”姿勢,應(yīng)用可為與該姿勢相關(guān)聯(lián)的應(yīng)用確定的參數(shù)設(shè)定值。 參數(shù)可包括上述加速閾值,其確定用戶的肩310、髖312和膝316的某種組合必須向上移動多快來觸發(fā)該姿勢;以及肩310、髖312和膝316之間仍可觸發(fā)跳躍的最大對齊角。
輸出可包括置信度水平,以及用戶在跳躍時的身體角度?;趯⒔邮兆藙莸膽?yīng)用的細節(jié)來為姿勢設(shè)定參數(shù)對于準確地標識姿勢而言是重要的。正確地標識姿勢以及用戶的意圖極大地有助于創(chuàng)建積極的用戶體驗。在姿勢識別器系統(tǒng)太敏感、甚至手302的微小向前運動也被解釋為投擲的情況下,用戶可能變得沮喪,因為在他沒有作出姿勢的意圖的情況下卻識別出姿勢,因此他缺乏對系統(tǒng)的控制。在姿勢識別器系統(tǒng)不夠敏感的情況下,系統(tǒng)可能未識別出用戶作出投擲姿勢的刻意嘗試,從而類似地使用戶感到沮喪。在敏感度范圍的任一端,用戶都會變得沮喪,因為他不能正確地向系統(tǒng)提供輸入。對于姿勢的另一參數(shù)可以是移動的距離。在用戶的姿勢控制虛擬環(huán)境中的化身的動作的情況下,該化身可以是手臂離球的長度。如果用戶希望與該球交互并抓住它,則這可要求用戶伸展他的手臂302-310到全長同時作出抓握姿勢。在這一情形中,用戶僅部分地伸展他的手臂302-310的類似的抓握姿勢可能無法達到與球交互的結(jié)果。姿勢或其一部分可將它必須在其中發(fā)生的空間體作為參數(shù)。在姿勢包括身體移動的情況下,該空間體通??上鄬τ谏眢w來表達。例如,對于慣用右手的用戶的美式足球投擲姿勢可僅在不低于右肩310a、且與投擲手臂3(^a-310a在頭322的相同側(cè)的空間體中識別??赡懿槐匾x空間體的所有邊界,如對于該投擲姿勢,其中從身體向外的邊界留著不被定義,并且該空間體無限地向外延伸,或者延伸到正被監(jiān)視的場景的邊緣。圖5示出了捕捉物理空間中的用戶控制器操縱并將其映射到對虛擬環(huán)境中的虛擬對象的光標操縱的系統(tǒng)。虛擬空間可包括用戶可通過用戶輸入影響的一即通過移動對象一三維空間的表示。虛擬空間可以是與用戶的物理空間無相關(guān)性的完全虛擬空間一如物理現(xiàn)實中找不到的城堡或教室的表示。虛擬空間還可基于用戶與之不具有關(guān)系的物理空間,如華盛頓州雷蒙德市的用戶從未看見或從未位于其中的得梅因市的實際教室。虛擬空間可包括用戶的物理空間的某一部分的表示。捕捉用戶的深度相機也可捕捉用戶物理上所存在于的環(huán)境,對其進行解析以確定相機可見的空間的邊界以及該空間中的離散對象,以及創(chuàng)建該空間的作為虛擬空間被呈現(xiàn)給用戶的全部或一部分的虛擬表示。虛擬空間可包括第二用戶的物理空間的某一部分的表示。在兩個用戶通過虛擬環(huán)境彼此交互且由相應(yīng)的深度相機捕捉的情況下,該虛擬空間可以是該第二用戶的虛擬空間的表示。虛擬空間也可以是這些空間的某種組合。它可以是用戶的物理空間的表示和完全的虛擬空間的拼接(這可被稱為完全的虛擬子空間,因為該拼接是虛擬空間),使得兩者都被表示為單個虛擬空間。類似地,它可以是用戶的物理空間的表示、完全的虛擬空間以及第二用戶的虛擬空間的表示的拼接,用戶的物理空間的表示和第二用戶的物理空間的表示的拼接,或第二用戶的物理空間的表示和完全的虛擬空間的拼接。在一實施例中,用戶從第一人稱視角或第三人稱視角查看該虛擬空間。在第一人稱視角中,該虛擬空間被顯示給用戶就好像用戶處于該空間中一該顯示示出用戶將用他自己的眼睛看到什么。在第三人稱視角中,虛擬空間與該用戶在該虛擬空間中的表示(如化身)一起被顯示給用戶,這類似于就好像用戶被第三人在該空間中觀察一樣。在一實施例中,虛擬對象包括該虛擬空間中可與之交互的對象。在虛擬空間是完全虛擬的且表示教室的情況下,諸如粉筆、黑板擦、黑板、椅子、桌子、地球儀、窗戶、門把手和門之類的事物可以是虛擬對象。用戶可以各種方式對這些對象進行操縱或交互,例如通過用粉筆寫、提起粉筆、移動粉筆、扔粉筆、或掰斷粉筆。在一實施例中,虛擬對象對應(yīng)于物理對象。這可以是用戶所擁有的一物理對象。例如,如果用戶具有椅子,該物理椅子可由深度相機捕捉,且該椅子的表示可被插入到虛擬環(huán)境中。在用戶移動該物理椅子的情況下,深度相機可捕捉這個動作,并顯示虛擬椅子的相應(yīng)移動。在虛擬對象對應(yīng)于物理對象的一實施例中,可能存在彼此無關(guān)地移動的情況。給定上述的物理椅子和虛擬椅子,在用戶移動虛擬椅子的情況下,可能的是相應(yīng)的物理椅子不移動。例如,用戶可向虛擬椅子扔虛擬球,所產(chǎn)生的碰撞將碰翻虛擬椅子。然而,由于沒有物理力作用于物理椅子,物理椅子將保持豎立。類似地,物理對象可在不移動其對應(yīng)的虛擬對象的情況下被移動。例如,在用戶位于大房間但虛擬空間相對較小的情況下,用戶可在其右側(cè)將物理椅子移動到遠處。如果虛擬椅子已經(jīng)在相應(yīng)的方向中接觸到虛擬墻壁,則盡管物理椅子確實移動了,虛擬椅子也可不移動。在一實施例中,虛擬對象對應(yīng)于第二用戶的物理對象。在第二用戶的物理椅子被虛擬化的情況下,用戶將僅被呈現(xiàn)該第二用戶的椅子的虛擬表示。隨著用戶與該虛擬椅子交互,那些交互(如移動椅子)可被反映在虛擬環(huán)境中。這可不被反映在物理椅子的實際移動中。在一實施例中,該交互也被顯示給第二用戶,使得顯示給用戶和第二用戶兩者的虛擬環(huán)境保持一致。在一實施例中,該交互不被顯示給第二用戶,使得第二用戶的虛擬環(huán)境和第二用戶的物理環(huán)境保持一致。在一實施例中,在虛擬對象對應(yīng)于第二用戶的物理對象的情況下,用戶不能操縱該虛擬對象。這確保顯示給兩個用戶的虛擬環(huán)境以及第二用戶的物理環(huán)境保持一致。在一實施例中,第二用戶可通過操縱相應(yīng)的物理對象來操縱該虛擬對象。由于第二用戶能夠?qū)嶋H使用該物理對象,他的對該物理對象的操縱可被反映在兩個用戶的虛擬環(huán)境中,使得那些虛擬環(huán)境和第二用戶的物理環(huán)境將保持一致??刂破靼ㄓ脩粼谖锢砜臻g中操縱的某物以使得虛擬空間中的光標以相應(yīng)的方式被操縱??刂破骺砂ㄎ锢硎挛铩K梢允巧眢w部位,如用戶的手。它類似地可以是物理對象,如指揮棒或指示器、碟或球。在控制器是身體部位的情況下,深度相機可被用于提供深度數(shù)據(jù),深度數(shù)據(jù)然后被解析以確定用戶的骨架數(shù)據(jù)。從該骨架數(shù)據(jù)以及該骨架數(shù)據(jù)如何隨時間改變,用戶對他的控制器的移動可被確定。控制器可包括虛構(gòu)事物。用戶可運動來扔虛構(gòu)的球。這可使用上述的用戶骨架數(shù)據(jù)來檢測。例如,用戶可運動來向正在顯示虛擬對象的顯示設(shè)備扔虛構(gòu)的球??捎嬎闱?qū)⑴c顯示畫面相交在哪里,并且接著可確定和顯示這將影響虛擬對象的方式一例如通過碰撞。在一實施例中,當虛構(gòu)的球與顯示畫面相交時,它可被示為虛擬空間中的虛擬對象并在該虛擬空間中沿其飛行路線行進。光標可包括控制器在虛擬空間中的虛擬表示,可與虛擬空間中的虛擬對象交互。 通過在物理空間中操縱一個或多個控制器,用戶能夠引起對虛擬空間中的一個或多個相應(yīng)光標的操縱,在那些光標使得虛擬空間中的虛擬對象被操縱的情況下(例如虛擬塊被推動),該操縱發(fā)生。此外,光標可由于不被顯示在顯示設(shè)備上而是不可見的。
捕捉設(shè)備508捕捉用戶502所存在于的物理空間中的場景504。捕捉設(shè)備耦合于向顯示器512進行輸出的計算設(shè)備510。在一實施例中,捕捉設(shè)備508包括圖2的捕捉設(shè)備 20,計算設(shè)備510包括圖2的計算環(huán)境12、圖3A的多媒體控制臺100或圖的計算環(huán)境 220。捕捉設(shè)備捕捉該場景并產(chǎn)生深度數(shù)據(jù)。從該深度數(shù)據(jù),確定并監(jiān)控用戶502如何操縱用戶控制器506。計算設(shè)備510將用戶控制器506與顯示在顯示器512上的虛擬環(huán)境中的光標514相關(guān)聯(lián)(光標51 和514b描繪了兩個時間點的光標,因為它對應(yīng)于兩個時間點的控制器506a和506b)??刂破?06可以被預先確定一系統(tǒng)可總是發(fā)現(xiàn)用戶502的右手是控制器506,從而總是將用戶502的右手與光標相關(guān)聯(lián)??刂破饕部梢允怯捎脩舸_定的。例如計算設(shè)備510 可向用戶502顯示捕捉設(shè)備508捕捉的圖像數(shù)據(jù),帶有關(guān)于將控制器放置在屏幕的特定區(qū)域的指示。如果用戶502將他的左手放在該區(qū)域中,則可確定其為控制器。如果用戶502 將其右手、腳、或諸如棒球棒之類的某種物體放置在該區(qū)域中,則這同樣適用??刂破?06隨后被用戶用來操縱屏幕上的光標514。光標514可以是控制器506 的表示。在控制器506是用戶的右手的情況下,光標514可以是右手。類似地,在控制器 506是用戶的左手的情況下,光標514可以是用戶的左手。在一實施例中,光標514和控制器506不直接以此方式相關(guān)。例如,控制器506可以是用戶的手,但光標514可以是網(wǎng)球拍或裝卸抓的表示。多個控制器506和多個光標514可在單個虛擬環(huán)境中被使用。例如, 用戶502的每個手可包括控制器506,或兩個用戶(存在于相同的物理環(huán)境中,或分開的物理環(huán)境中,各自具有跨通信網(wǎng)絡(luò)一起通信的計算設(shè)備)各自可具有控制器506,像他們的右手,且這些控制器506中的每一個可映射到光標514。當用戶操縱控制器506時,該操縱由捕捉設(shè)備508捕捉并由計算設(shè)備510處理以影響對光標514的相應(yīng)操縱。例如,在用戶伸出他的控制器506a手且閉合他的手指506b 的情況下,虛擬手光標51 可伸到虛擬場景中,且該虛擬手的手指可閉合514b。計算設(shè)備510可跟蹤光標514以及場景中的至少某個虛擬對象(如所描繪的虛擬指揮棒516)的位置數(shù)據(jù),使得它可確定作為用戶對控制器506的操縱的結(jié)果光標514何時觸及虛擬對象516。在經(jīng)控制器506對光標514進行的該操縱使得虛擬對象516被操縱的情況下,計算設(shè)備510可確定已發(fā)生的操縱并在顯示設(shè)備上顯示該操縱的結(jié)果。例如,在用戶伸出他的手光標514并閉合他的手指形成拳的情況下,這可使得手光標514延伸到場景中,光標514的手指握緊虛擬的指揮棒516。在用戶繼續(xù)向前伸出他的控制器506且這使得他的光標514繼續(xù)伸出到場景中時,可確定虛擬指揮棒516正通過移動到場景中來被操縱, 且該結(jié)果可被顯示在顯示器512中。圖6描繪了用于在虛擬空間中操縱虛擬對象的示例操作過程。操作602描繪了確定用戶用來操縱虛擬對象的至少一個控制器。操作604描繪了將控制器映射到虛擬空間中的光標。該映射可以是這樣一種關(guān)聯(lián)性,使得深度相機所觀察的且被解析以確定控制器移動的場景中該控制器的移動對應(yīng)于光標的移動。操作606描繪了確定指示用戶用光標操縱虛擬對象的控制器輸入。在一實施例中,存在移動的比例,且確定指示用戶用光標操縱虛擬對象的控制器輸入包括確定指示用戶用光標與該移動的比例成比例地操縱虛擬對象的控制器輸入。在移動的比例是1 2的情況下,這可意味著用戶每移動控制器一英寸,光標將在相同方向移動兩英寸。這可以是虛擬世界所定義的兩英寸(例如虛擬世界可被呈現(xiàn)為小于相應(yīng)的物理世界來開始,使得六英尺高的人在顯示在顯示設(shè)備上時看上去是三英尺高的化身),或本意的兩英寸,使得這對應(yīng)于顯示屏幕上兩英寸的移動。在一實施例中,光標具有至少一個維度,且確定指示用戶用光標與該移動的比例成比例地操縱虛擬對象的控制器輸入包括確定指示用戶用光標與該維度成比例地操縱虛擬對象的控制器輸入。取控制器是用戶的手且光標是依附于前臂的虛擬手作為示例。光標可響應(yīng)于控制器操縱而伸展或伸出。例如,如果用戶向深度相機沿ζ軸的維度伸出他的手, 而不是沿ζ軸維度單單地向前移動,手和前臂可沿該維度向前伸展。在一實施例中,使用物理模型來確定光標如何與虛擬對象交互。例如,在一給定物理模型中,虛擬對象可具有質(zhì)量且虛擬環(huán)境可具有重力,因此滾動靜止的虛擬球?qū)⒁笥霉鈽讼蚱涫┘幼銐虻牧σ钥朔虻膽T性。該物理模型可準確地對地球上的物理世界進行建模,或可使用某種其他模型。例如,物理模型中的重力可比地球重力弱,使得在其他相同情況下,在用光標向地面投下對象之后對象彈得更高。該物理模型可擴展出光標如何與虛擬對象交互,以及可擴展到虛擬對象如何與第二虛擬對象交互。例如,在用戶使用控制器使得光標將第一虛擬球推到第二虛擬球的情況下,第二虛擬球可由于兩個虛擬球之間的碰撞的結(jié)果而開始滾動。可存在虛擬空間中的虛擬碰撞,而沒有物理空間中的相應(yīng)物理碰撞。用戶可以下述方式移動控制器通過物理空間,該方式將要求虛擬空間中的相應(yīng)光標移動通過不可移動的虛擬對象或虛擬環(huán)境的一部分,如墻壁或非常重的巨石,如根據(jù)上述物理模型。在一實施例中,光標被動畫化以在虛擬環(huán)境中示出移動,且當這種碰撞發(fā)生時,光標停止動畫且在碰撞點保持靜止,直到用戶使用控制器向不涉及碰撞的方向操縱光標為止。在一實施例中,光標的動畫繼續(xù)通過該碰撞,使得物理環(huán)境中的該控制器的用戶的位置與虛擬環(huán)境中光標的位置之間不會斷開連接。操作608描繪了顯示該操縱的結(jié)果。在一實施例中,所述操縱的結(jié)果包括將虛擬對象與物理對象相關(guān)聯(lián),使得物理對象中的改變被反映為虛擬對象的相應(yīng)改變。例如,分開的物理環(huán)境中的兩個人可在一虛擬環(huán)境中交互,該虛擬環(huán)境是他們各自的物理環(huán)境的表示的拼接。第一用戶可選擇虛擬襯衫并將其與第二用戶的物理襯衫相關(guān)聯(lián),作為該相關(guān)聯(lián)的結(jié)果,第二用戶在虛擬環(huán)境中被示為穿著該虛擬襯衫而不是物理襯衫。虛擬襯衫的這種穿戴可僅示出給第一用戶,僅示出給第二用戶,或示出給兩個用戶。操作610描繪了確定第二用戶用來操縱虛擬對象的至少一個第二控制器;將第二控制器映射到虛擬空間中的第二光標;確定指示第二用戶用該第二光標操縱虛擬對象的第二控制器輸入;以及顯示該操縱的結(jié)果。在多個用戶在相同虛擬環(huán)境中交互的情況下,第二用戶對虛擬對象的操縱可在第一用戶的顯示設(shè)備上被顯示給第一用戶。在一實施例中,兩個用戶可同時操縱單個虛擬對象。在一實施例中,虛擬對象具有多個維度,且第一用戶操縱所述多個維度中的第一維度, 而第二用戶操縱所述多個維度中的第二維度。例如,第一用戶可提起對象,而第二用戶可在該對象被提起的同時旋轉(zhuǎn)該對象。此外,兩個用戶可操作某一虛擬對象的同一維度。一個用戶可在虛擬球上施加橫向力以旋轉(zhuǎn)它。第二用戶可在與第一用戶相同的方向中施加第二橫向力,施加到虛擬球的該額外的力將使其以增加的速度滾動。結(jié)論盡管已經(jīng)結(jié)合各附圖所示的較佳方面描述了本發(fā)明,但要理解,可使用其他相似方面或者可對所述方面進行修改或添加來執(zhí)行本發(fā)明的相同功能而不脫離本發(fā)明。因此, 本發(fā)明不應(yīng)該僅限于任何單個方面,而是應(yīng)該在根據(jù)所附權(quán)利要求書的廣度和范圍內(nèi)解釋。例如,本文描述的各種過程可用硬件或軟件、或兩者的組合來實現(xiàn)。因此,所公開的各實施例的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、硬盤驅(qū)動器或任何其他機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式。當程序代碼被加載到諸如計算機等機器并由其執(zhí)行時,該機器變?yōu)楸慌渲贸蓪嵤┧_的各實施例的裝置。除了此處明確闡述的具體實現(xiàn)之外,考慮此處所公開的說明書,其它方面和實現(xiàn)將對本領(lǐng)域的技術(shù)人員是顯而易見的。說明書和所示實現(xiàn)旨在僅被認為是示例。
權(quán)利要求
1.一種用于操縱虛擬空間中的虛擬對象的方法,包括確定用戶用來操縱所述虛擬對象的至少一個控制器(602);將所述控制器映射到所述虛擬空間中的光標(604);確定指示所述用戶用所述光標操縱所述虛擬對象的控制器輸入(606);以及顯示所述操縱的結(jié)果(608)。
2.如權(quán)利要求1所述的方法,其特征在于,所述控制器包括物理對象或所述用戶的至少一個身體部位。
3.如權(quán)利要求2所述的方法,其特征在于,所述物理對象包括指揮棒、碟、或球。
4.如權(quán)利要求1所述的方法,其特征在于,所述虛擬空間包括所述用戶的物理空間的表示、虛擬子空間、第二用戶的物理空間的表示、或它們的組合。
5.如權(quán)利要求1所述的方法,其特征在于,存在移動的比例,且確定指示所述用戶用所述光標操縱所述虛擬對象的控制器輸入包括確定指示所述用戶用所述光標與所述移動的比例成比例地操縱所述虛擬對象的控制器輸入。
6.如權(quán)利要求1所述的方法,其特征在于,所述虛擬對象對應(yīng)于所述用戶的物理空間中的物理對象或第二物理空間中的物理對象。
7.如權(quán)利要求1所述的方法,其特征在于,所述虛擬對象對應(yīng)于物理對象,所述操縱的結(jié)果包括顯示所述虛擬對象的安排,使得該安排對應(yīng)于所述物理對象的安排。
8.如權(quán)利要求1所述的方法,其特征在于,所述虛擬空間以第一人稱視角或第三人稱視角被呈現(xiàn)給所述用戶。
9.如權(quán)利要求1所述的方法,其特征在于,還包括確定第二用戶用來操縱所述虛擬對象的至少一個第二控制器; 將所述第二控制器映射到所述虛擬空間中的第二光標;確定指示所述第二用戶用所述第二光標操縱所述虛擬對象的第二控制器輸入;以及顯示所述操縱的結(jié)果。
10.如權(quán)利要求9所述的方法,其特征在于,所述虛擬對象具有多個維度,且所述第一用戶操縱所述多個維度中的第一維度,而所述第二用戶操縱所述多個維度中的第二維度。
11.如權(quán)利要求10所述的方法,其特征在于,所述維度包括軸。
12.如權(quán)利要求9所述的方法,其特征在于,所述第二用戶作為化身被表示給所述第一用戶。
13.如權(quán)利要求9所述的方法,其特征在于,所述第一用戶和所述第二用戶處于相同的物理空間或分開的物理空間中,且跨通信網(wǎng)絡(luò)進行通信。
14.一種用于與虛擬空間中的虛擬對象交互的系統(tǒng),包括 處理器(101);將用戶的控制器與虛擬環(huán)境(1 中的光標相關(guān)聯(lián)的組件; 接收關(guān)于用戶操縱所述控制器的指示的組件; 基于所述控制器操縱確定對所述光標的操縱的組件; 確定所述光標與所述虛擬對象交互的組件;以及顯示對所述虛擬對象交互的結(jié)果的組件。
全文摘要
公開了用于操縱虛擬對象的系統(tǒng)、方法和計算機可讀介質(zhì)。用戶可在物理空間中利用諸如他的手之類的控制器以與虛擬環(huán)境中的光標相關(guān)聯(lián)。當用戶在物理空間中操縱控制器時,這由深度相機捕捉。來自深度相機的圖像數(shù)據(jù)被解析以確定控制器如何被操縱,且在虛擬空間中執(zhí)行對光標的相應(yīng)操縱。在光標與虛擬空間中的虛擬對象交互的情況中,該虛擬對象由該光標操縱。
文檔編號G06F3/048GK102356373SQ201080013572
公開日2012年2月15日 申請日期2010年3月2日 優(yōu)先權(quán)日2009年3月20日
發(fā)明者A·C·湯姆林, D·A·貝內(nèi)特, K·蓋斯那, R·馬爾科維奇, S·G·拉塔 申請人:微軟公司