專利名稱:沖突判定方法及沖突判定裝置的制作方法
技術領域:
本發明涉及判定作為二維圖像來顯示的虛擬空間的目標之間的沖突的技術。
背景技術:
有一種技術,用于將虛擬三維空間的三維目標群近似成球體等立體形狀,并通過該近似的立體形狀(球體等)之間是否重復,來判定目標之間的沖突。與使用正確反映了目標的形狀來進行沖突判定的場合相比,該技術可以減輕沖突判定所必需的計算量。
在特開平10-165648號公報中,公開了一種將目標近似成橢圓面體的技術。特開平7-152807號公報公開了一種下列技術,其將目標形狀近似成球體,并進行粗略的檢查,然后將具有干涉可能性的目標進一步近似成至少一個基本的立體形狀,并進行精密的檢查。特開平7-230559號公報中,公開了一種將目標的形狀近似成多個球體的技術。
在特開平10-165648號公報技術的場合下,與近似成單純的球體的場合相比,在有的情況下可進行精度良好的沖突判定,但在有些情況下,卻不能適當地進行沖突判定。在特開平7-152807號公報技術的場合下,由于除了粗略的檢查之外還有必要進行精密的檢查,因而存在著增加計算量的問題。在特開平7-230559號公報技術的場合下,由于對一個目標有必要進行多個球體的沖突判定,因而也存在著增加計算量的問題。
發明內容
因此,本發明的主要目的在于,抑制沖突判定所需的計算量的增加,同時可進行基于狀況的適當的沖突判定。
為達到前述目的,本發明采用了以下構成。括號內的參照符號、附圖編號及注言,用于幫助理解本發明,表示與附圖的對應關系一例,絲毫不限定本發明的范圍。
本發明的第一方面是一種沖突判定方法,用于判定顯示單元(12)所顯示的虛擬空間中第一目標(犬A)與第二目標(犬B)的沖突,該沖突判定方法包括更新步驟(S12)、第一設定步驟(S16)、第二設定步驟(S16)及沖突判定步驟(S22)。其中,更新步驟,是用于對存儲于存儲單元(24)的前述第一目標或前述第二目標的位置信息(51)進行更新的步驟。第一設定步驟,是用于對前述第一目標設定沖突判定區域(圖8A~圖8F)的步驟,該區域是與該第一目標的形狀不同形狀的沖突判定區域,其大小及/或位置隨著該第一目標的狀態或該第一目標的周邊狀態(圖7的狀態A~狀態F)而異。第二設定步驟,是用于對前述第二目標設定沖突判定區域的步驟。沖突判定步驟是一種判定步驟,其通過判定在前述第一設定步驟中設定的前述第一目標的沖突判定區域與在前述第二設定步驟中設定的前述第二目標的沖突判定區域是否重復,來判定該第一目標與該第二目標的沖突。此外,虛擬空間可以是二維也可以是三維。第一目標及沖突判定區域也同樣,可以是二維也可以是三維。作為沖突判定區域,可利用比如球體、長方體、圓柱、橢圓體等形狀的區域。在第一目標中設定的沖突判定區域可以是一個,也可以是多個。第一目標的沖突判定區域的所謂「位置」,系指針對第一目標的相對位置。對第二目標的沖突判定區域而言,可以將與第二目標不同形狀的區域,設定為第二目標的沖突判定區域,也可以將第二目標的形狀本身用作第二目標的沖突判定區域。
本發明第二方面的特征在于在前述第一方面中,在前述第一設定步驟對前述第一目標設定的沖突判定區域,具有比該第一目標的形狀更為簡單的形狀。
本發明第三方面的特征在于在前述第一方面中,在前述第一設定步驟對前述第一目標設定的沖突判定區域,只由一個球體來構成。
本發明第四方面的特征在于在前述第一方面中,在前述第一設定步驟,對前述第一目標(犬A)設定沖突判定區域,該區域的大小及/或位置在該第一目標與其它目標即第三目標(飛碟)相結合時(圖7的狀態E、圖8E)及非結合時(圖8A)是不同的。此外,所謂第一目標與第三目標「相結合」,系指第一目標與第三目標以互相接觸或相交的狀態來一體存在的狀態。
本發明第五方面的特征在于在前述第四方面中,在前述第一設定步驟,對前述第一目標設定沖突判定區域,該區域在該第一目標與其它目標即第三目標相結合時,包含該第三目標的至少一部分(圖8E)。
本發明第六方面的特征在于在前述第一方面中,在前述第一設定步驟,對前述第一目標設定沖突判定區域,該區域在容許該第一目標與其它目標接觸的狀態時(圖7的狀態D,圖8D),小于不容許接觸的狀態時(圖8A)。所謂「容許與其它目標接觸的狀態」,系指容許以大于平常的程度來接近其它目標的狀態,比如,系指在第一目標為犬的場合下,該犬與其它犬一起玩耍的狀態。
本發明第七方面的特征在于在前述第一方面中,在前述第一設定步驟,對前述第一目標設定沖突判定區域,該區域的大小及/或位置,隨著該第一目標的當前位置或該第一目標與其它目標的位置關系而異。
本發明第八方面的特征在于在前述第一方面中,前述第一設定步驟包括從前述存儲單元,讀出設定為規定的大小及位置的前述第一目標的基本沖突判定區域的讀出步驟;根據該第一目標的狀態或該第一目標的周邊狀態,來變更所讀出的該基本沖突判定區域的大小及/或位置的變更步驟。在變更步驟中,也可以參照按照所設想的每種前述第一目標的狀態或該第一目標的周邊狀態來規定了前述沖突判定區域的大小及位置的變化量(相對基本沖突判定區域的變化量)的列表,來變更基本沖突判定區域的大小及/或位置。前述列表中的「相對基本沖突判定區域的變化量」,可以由數值本身來規定,也可以由用于求算變化量的函數來規定。
本發明第九方面的特征在于在前述第一方面中,在前述第一設定步驟,參照按照所設想的每種前述第一目標的狀態或該第一目標的周邊狀態來規定了前述沖突判定區域的大小及位置的沖突判定區域列表(44,圖7),來設定前述第一目標的沖突判定區域。沖突判定列表中的「沖突判定區域的大小及位置」,可以由表示大小及位置的數值本身來規定,也可以由用于求算大小及位置的函數來規定。
本發明第十方面的特征在于在前述第一方面中,前述沖突判定方法還包括移動步驟(S30)及輸出步驟(S34)。移動步驟用于當在前述沖突判定步驟中檢測出前述第一目標與前述第二目標發生沖突時,對前述存儲單元中存儲的前述第一目標或前述第二目標的位置信息(51)進一步更新,由此,使該第一目標及該第二目標的至少一個移動到前述第一目標的沖突判定區域與前述第二目標的沖突判定區域不重復的位置。輸出步驟用于參照前述存儲單元中存儲的前述第一目標或前述第二目標的位置信息(51),來生成包含前述第一目標及前述第二目標的圖像,并輸出到前述顯示單元。
本發明第十一方面,是一種沖突判定裝置,用于判定顯示單元所顯示的虛擬空間中第一目標與第二目標的沖突。該沖突判定裝置(10)具有前述顯示單元(12)、存儲單元(24)、更新單元(21,S12)、第一設定單元(21,S16)、第二設定單元(21,S16)及沖突判定單元(21,S22)。其中,存儲單元至少存儲前述第一目標及前述第二目標的位置信息(51)。更新單元,對前述存儲單元中所存儲的前述第一目標或前述第二目標的位置信息進行更新。第一設定單元,對前述第一目標設定沖突判定區域(圖8A~圖8F),該區域是與第一目標的形狀不同形狀的沖突判定區域,其大小及/或位置隨著該第一目標的狀態或該第一目標的周邊狀態(圖7的狀態A~狀態F)而異。第二設定單元,對前述第二目標設定沖突判定區域。沖突判定單元,通過判定前述第一目標的沖突判定區域與前述第二目標的沖突判定區域是否重復,來判定該第一目標與該第二目標的沖突。
根據前述第一方面,由于第一目標的沖突判定區域大小及位置的至少一個,隨著該第一目標或周圍狀態而變,因而可根據第一目標或周圍狀態來進行適當的沖突判定。
根據前述第二方面,由于利用比第一目標的形狀更為簡單的形狀,來進行沖突判定,因而可減少沖突判定所需的計算量。
根據前述第三方面,可大幅削減沖突判定所需的計算量。
根據前述第四方面,可根據第一目標與第三目標是否結合,來適當設定第一目標的沖突判定區域。
根據前述第五方面,當第一目標與第三目標結合時,按照包含該第三目標的一部分或全部的形式來設定第一目標的沖突判定區域,因而可利用該沖突判定區域來進行與其它目標的沖突判定,由此可省略第三目標與其它目標之間的沖突判定。因此,不必再個別進行第一目標與其它目標之間的沖突判定及第三目標與其它目標之間的沖突判定,從而可削減沖突判定所需的計算量。
根據前述第六方面,可以避免比如盡管允許第一目標與其它目標相接觸,但只能在兩個目標相隔的狀態下予以顯示這一不便。
根據前述第七方面,在比如第一目標接近被障礙物所夾的狹窄通路時等,可以適當設定第一目標的沖突判定區域。
根據前述第八方面,通過適宜變更基本的沖突判定區域的大小及位置,可獲得與前述第一方面同樣的效果。
根據前述第九方面,通過參照沖突判定區域列表,可適宜設定沖突判定區域。
根據前述第十方面,可以基于沖突判定的結果,按照目標之間不發生干涉的形式來控制這些位置,并在畫面上顯示出各目標。
參照附圖及以下的詳細說明,可以更加了解本發明的前述及其它目的、特征、方面及效果。
圖1是本發明一種實施方式涉及的游戲裝置的外觀圖。
圖2是表示本發明一種實施方式涉及的游戲裝置的內部結構的方框圖。
圖3是RAM的存儲分配圖。
圖4是虛擬三維空間中的虛擬攝像機及目標的配置一例。
圖5是第二LCD所顯示的游戲畫面一例。
圖6是目標信息一例。
圖7是沖突判定區域列表一例。
圖8A是匍匐狀態下沖突判定區域的設定例。
圖8B是站立狀態下沖突判定區域的設定例。
圖8C是蹲坐狀態下沖突判定區域的設定例。
圖8D是與其它的犬玩耍狀態下沖突判定區域的設定例。
圖8E是銜著飛碟狀態下沖突判定區域的設定例。
圖8F是要從狹窄通道中通過的狀態下沖突判定區域的設定例。
圖9是表示游戲裝置的動作的流程圖。
圖10是表示沖突判定區域設定處理的詳情的流程圖。
圖11是表示沖突判定方法及移動向量的計算方法的附圖。
圖12是表示合成移動向量的計算方法的附圖。
具體實施例方式
以下,說明本發明的一種實施方式所涉及的游戲裝置的結構及動作。
圖1是本發明一種實施方式涉及的游戲裝置的外觀圖。圖1中,游戲裝置10包含第一LCD(Liquid Crystal Display液晶顯示裝置)11及第二LCD12。殼體13由上側殼體13a與下側殼體13b來構成,第一LCD11存置于上側殼體13a內,第二LCD12存置于下側殼體13b內。第一LCD11及第二LCD12的分辨率均為256點×192點。在本實施方式中,采用LCD來作為顯示裝置,但也可利用采用了比如EL(ElectroLuminescence電場發光)的顯示裝置等其它任意的顯示裝置。可采用具有任意分辨率的顯示裝置。
在上側殼體13a中,形成有用于將來自后述的一對揚聲器(圖2的30a、30b)的音響向外部放出的放音孔18a、18b。
在下側殼體13b中,作為輸入裝置,設有十字開關14a、啟動開關14b、選擇開關14c、A鈕14d、B鈕14e、X鈕14f、Y鈕14g、L鈕14L、R鈕14R。此外,作為輸入裝置,在第二LCD12的畫面上,還安裝有觸摸面板15。在下側殼體13b中,還設有電源開關19、以及用于存置存儲卡17及棒桿16的插入口。
作為觸摸面板15,可利用比如電阻膜方式及光學式(紅外線方式)及靜電電容結合式等任意方式的面板。觸摸面板15,具有當用棒桿16接觸其表面后便輸出與該接觸位置對應的坐標數據的功能。在下文中,以使用者用棒桿16來操作觸摸面板15為例來進行說明,但當然也可以取代棒桿16,而采用筆(鐵筆)或手指來操作觸摸面板15。在本實施方式中,作為觸摸面板15,采用分辨率(檢測精度)與第二LCD12的分辨率同為256點×192點的面板。但是,觸摸面板15的分辨率不必一定與第二LCD12的分辨率一致。
存儲卡17,是記錄有游戲程序的記錄媒體,在設置于下部殼體13b的插入口內自由裝卸地安裝。
接下來,參照圖2,來說明游戲裝置10的內部構成。
圖2中,在殼體13內所存置的電子電路基片20上,安裝有CPU芯21。在CPU芯21上,經由總線22連接有連接器23,而且還接有輸入輸出接口電路(附圖中標為I/F電路)25;第一GPU(Graphics ProcessingUnit)26;第二GPU27;RAM24;LCD控制器31。在連接器23上,自由裝卸地連接存儲卡17。在存儲卡17上搭載有存儲游戲程序的ROM17a;可改寫地存儲備份數據的RAM17b。存儲卡17的ROM17a中所存儲的游戲程序,被裝入RAM24內,裝入到RAM24內的游戲程序,由CPU芯21來執行。在RAM24中,除了游戲程序之外,還存儲有用于生成CPU芯21執行游戲程序的暫存數據、以及用于生成游戲圖像的數據。在I/F電路25上連接有觸摸面板15、右揚聲器30a、左揚聲器30b、由圖1的十字開關14a及A鈕14d等所組成的操作開關部14。右揚聲器30a及左揚聲器30b,分別配置于放音孔18a及18b的內側。
第一GPU26與第一VRAM(Video RAM)28相接,第二GPU27與第二VRAM29相接。第一GPU26,根據來自CPU芯21的指示,并基于RAM24中存儲的用于生成游戲圖像的數據,來生成第一游戲圖像,并描繪到第一VRAM28內。第二GPU27,同樣根據來自CPU芯21的指示,來生成第二游戲圖像,并描繪到第二VRAM29內。第一VRAM28及第二VRAM29,與LCD控制器31連接。
LCD控制器31包括寄存器32。寄存器32根據來自CPU芯21的指令,來存儲0或1值。LCD控制器31,在寄存器32的值為0的場合下,將在第一VRAM28中描繪的第一游戲圖像,輸出給第一LCD11,并將在第二VRAM29中描繪的第二游戲圖像,輸出給第二LCD12。在寄存器32的值為1的場合下,將在第一VRAM28中描繪的第一游戲圖像,輸出給第二LCD12,并將在第二VRAM29中描繪的第二游戲圖像,輸出給第一LCD11。
前述的游戲裝置10的結構不過是一個示例,本發明可適用于具有顯示裝置的任意信息處理裝置。本發明的游戲程序,不僅通過存儲卡17等外部存儲媒體來提供給信息處理裝置,也可以通過有線或無線通信線路來提供給信息處理裝置,還可以預先記錄到信息處理裝置內部的非易失性存儲裝置內。
圖3表示RAM24的存儲分配圖。RAM24的存儲區域,大致由程序存儲區及數據存儲區來構成。
游戲程序41,從存儲卡17的ROM17a裝入到程序存儲區。該游戲程序中,包含比如按規定的算法來自動控制虛擬三維空間內的目標的程序碼、以及利用規定的沖突判定式,來進行采用了后述的沖突判定區域的沖突判定處理的程序碼等。
在數據存儲區中,存儲有攝像機設定信息42、目標信息43、以及沖突判定區域列表44。
攝像機設定信息42,是有關配置于虛擬三維空間內的虛擬攝像機的各種設定值所組成的信息,比如,是虛擬攝像機的配置坐標、傾斜度(旋轉角度)、方向(視線方向)、視野角等。圖4表示虛擬三維空間中的虛擬攝像機的配置一例。在第二LCD12中,從虛擬攝像機觀看配置于虛擬三維空間內的目標(在圖4示例中為犬A、犬B及地面)的場景,作為游戲圖像來顯示。圖5表示基于圖4的虛擬攝像機來顯示于第二LCD12上的游戲圖像。由于基于虛擬攝像機來生成虛擬三維空間圖像的方法是一種周知的技術,因而在這里省略其詳細說明,只做下述簡單說明將用通用坐標系來表示的各目標的頂點坐標(更正確地說,是構成目標的多邊形的頂點坐標),轉換為以虛擬攝像機為基準的攝像機坐標系,并通過透視投影轉換,來將這些頂點坐標轉換為屏面坐標系。
目標信息43,是有關配置于虛擬三維空間內的目標的各種信息。圖6表示該目標信息43的詳情。在本實施方式中,作為可配置于虛擬三維空間內的目標,準備了犬A、犬B、犬C、飛碟、壁A以及壁B。在本實施方式中,配置于虛擬三維空間內的犬,以按照規定的自動控制算法,且按照自己的意志來活動的形式,在虛擬三維空間內自行移動。
如圖6所示,犬A的目標信息43,由形狀數據、紋理數據、配置坐標51、狀態數據52以及沖突判定區域數據53來構成。
形狀數據,是有關目標形狀的數據,比如,是構成目標的多邊形的頂點坐標等。紋理數據,是附加于構成目標的多邊形的圖像數據。
配置坐標51,是虛擬三維空間內犬A的配置坐標,基于前述自動控制算法來隨時更新。
狀態數據52,是表示犬A的狀態或犬A的周圍狀態的數據。在本實施方式中,犬A或其周圍的狀態,如圖7所示分為六種狀態(狀態A~F)。該狀態數據52與配置坐標51同樣,也基于前述自動控制算法來隨時更新。
沖突判定區域數據53,是表示為了判定犬A與其它目標的接觸而在犬A中設定的沖突判定區域的位置及大小的數據。在本實施方式中,對犬A~犬C,利用球體的沖突判定區域來進行沖突判定處理。因此,作為沖突判定區域數據53,至少存儲用作犬A的沖突判定區域的球體中心坐標及半徑即可。
對犬B及犬C也同樣,作為目標信息43來存儲與犬A同樣的信息。
作為飛碟的目標信息43,存儲有形狀數據、紋理數據、配置坐標以及沖突判定區域數據。對形狀數據、紋理數據及配置坐標,也與犬的數據同樣。作為飛碟的沖突判定區域,可采用任意形狀的區域,但這里作為一例,采用圓盤狀沖突判定區域。作為飛碟的沖突判定區域數據,存儲表示該圓盤狀沖突判定區域的位置及形狀的數據。此外,也可以將飛碟的形狀數據自身用作沖突判定區域數據。
對壁A及壁B的目標信息43也同樣,存儲與飛碟同樣的信息。
圖3所示的沖突判定區域列表44,是為決定對各犬所應設定的沖突判定區域而參照的列表。圖7表示該沖突判定區域列表44的詳情。
在沖突判定區域列表44中,如圖7所示,分別按各狀態A~F,來規定沖突判定區域的中心位置·半徑。
比如,對狀態A(匍匐狀態)而言,作為沖突判定區域,如圖8A所示,與中心位于犬的胸部、半徑為30的球體相對應。
對狀態B(站立狀態)而言,作為沖突判定區域,如圖8B所示,與中心位于犬的腰部、半徑為10的球體相對應。這樣,在犬站立的狀態之時,使沖突判定區域的大小小于匍匐狀態之時,且使該位置接近足下,由此,可使其它的犬相對站立的犬接近到適當的距離為止,這樣,便可使犬的活動消除不自然感。
對狀態C(蹲坐狀態)而言,作為沖突判定區域,如圖8C所示,與中心位于犬的胸部,半徑為20的球體相對應。這樣,在犬蹲坐的狀態之時,使沖突判定區域的大小小于匍匐狀態之時,由此,可使其它的犬相對蹲坐的犬接近到適當的距離為止,這樣,便可使犬的活動消除不自然感。
對狀態D(與其它的犬一起玩耍的狀態)而言,作為沖突判定區域,如圖8D所示,與中心位于犬的胸部,半徑為10的球體相對應。這樣,在犬互相玩耍(即比一般情況更為接近)的狀態之時,使沖突判定區域的大小小于匍匐狀態之時,由此,可接近其它的犬,直至達到從游戲者看去二個犬在互相玩耍的距離為止,這樣,便可使犬的活動消除不自然感。
對狀態E(銜著飛碟的狀態)而言,作為沖突判定區域,如圖8E所示,與中心位于犬的頭部,半徑為40的球體相對應。由此,可以只用比如犬A與犬B的沖突判定,來代替飛碟與犬B的沖突判定、以及犬A與犬B的沖突判定這二個沖突判定,因而可削減沖突判定所需的計算量。
對狀態F(接近狹窄通路的狀態)而言,作為沖突判定區域,如圖8F所示,與中心位于犬的胸部,半徑為10的球體相對應。這樣,便可防止發生盡管在外觀上好像能穿過通路,但犬走到通路前便停止這一不自然的狀況。
以下,參照圖9~圖10的流程圖,來說明基于游戲程序41的CPU芯21的處理流程。
圖9中,在游戲程序41開始執行后,CPU芯21在步驟S10,在虛擬三維空間內將虛擬攝像機及目標配置到初始位置。
在步驟S12,按照規定的自動控制算法來決定各犬的動作(行動模式),并根據所決定的動作來適宜更新各犬的位置(配置坐標51)及姿勢。
在步驟S14,根據該時刻的犬的姿勢(匍匐、站立、蹲坐、銜著飛碟)、以及由自動控制算法來決定的犬的行動模式(與其它犬玩耍、要通過狹窄通路),來判定各犬的狀態,并根據該判定結果來更新RAM24的狀態數據52。
在步驟S16,基于在步驟S14中判定的各犬的狀態,來進行沖突判定區域設定處理。以下,參照圖10的流程圖,來說明該沖突判定區域設定處理的詳情。
圖10中,在沖突判定區域設定處理開始后,CPU芯21在步驟S40,選擇成為應設定沖突判定區域的對象的犬。這里,將犬A選擇為處理對象來進行說明。
在步驟S42,從RAM24,讀出處理對象即犬A的狀態數據52。
在步驟S44,參照RAM24中所存儲的圖7的沖突判定區域列表,來取得在步驟S42中讀出的狀態數據52所對應的沖突判定區域中心位置及半徑,并基于所取得的中心位置及半徑,來更新犬A的沖突判定區域數據53。由于圖7的沖突判定區域列表的中心位置由針對犬的相對位置來規定,而RAM24中所存儲的沖突判定區域數據的中心坐標則由通用坐標系來表示,因而在步驟S44中,進行旨在將沖突判定區域列表的中心位置變換為通用坐標系的處理。
在步驟S46,判斷對全部犬A~犬C的沖突判定區域的設定是否已結束,如果對所有犬的設定已結束,則結束沖突判定區域設定處理,從而進入圖9的步驟S18,如果某個犬的設定尚未結束,則返回步驟S40,從而以該犬作為處理對象,進行與犬A同樣的處理。其結果是,對所有的犬而言,RAM24的沖突判定區域數據53均得到更新。
在圖9的步驟S18中,選擇成為沖突判定處理的對象的犬。這里,將犬A選擇為處理對象來進行說明。
在步驟S20,從除了處理對象即犬A之外的其它目標中,選擇一個成為應進行與該犬A的沖突判定的對象的目標。這里,作為應進行與犬A的沖突判定的對象,選擇犬B來進行說明。
在步驟S22中判定在步驟S18中選擇的目標(這里是犬A)與在步驟S20中選擇的目標(這里是犬B)是否發生了沖突。具體而言,參照存儲于RAM24的犬A的沖突判定區域數據與犬B的沖突判定區域數據,并利用規定的沖突判定式,來判定犬A的沖突判定區域與犬B的沖突判定區域是否重復(即,是否相交),由此來進行前述判定。比如,如圖11所示,如果將犬A的沖突判定區域的半徑設為a,將犬B的沖突判定區域的半徑設為b,將犬A的沖突判定區域中心與犬B的沖突判定區域中心之間的距離設為c,則當a+b的值大于c時,便判定為犬A與犬B發生了沖突。對該判定結果而言,在判定出在步驟S18中選擇的目標(這里是犬A)、與在步驟S20中選擇的目標(這里是犬B)發生了沖突的場合下,進入步驟S24,在判定為未發生沖突的場合下,進入步驟S26。
在步驟S24中,算出用于使在步驟S18中選擇的目標,移動到在步驟S 18中選擇的目標(這里是犬A)的沖突判定區域、與在步驟S20中選擇的目標(這里是犬B)的沖突判定區域不重復的位置的移動向量。比如,當犬A的沖突判定區域與犬B的沖突判定區域處于圖11所示的位置關系時,將方向是從犬B的沖突判定區域中心朝向犬A的沖突判定區域中心的方向、且大小是a+b-c的向量,作為犬A的移動向量。如此計算出的移動向量,被暫時存儲到RAM24的適當的存儲區域中。
在步驟S26,判斷所有其它目標(這里是除了犬A之外的所有目標)與犬A之間的沖突判定是否已結束,如果已結束,則進入步驟S28,如果尚未結束,則返回步驟S20,從而對尚未進行沖突判定的其它目標重復同樣的處理。這里假設在重復步驟S20~S24的過程中,如圖12所示,也檢測出犬A的沖突判定區域與犬C的沖突判定區域發生了重復。
在步驟S28中,在重復步驟S20~S24從而在步驟S24中算出了多個移動向量的場合下,進行合成這些移動向量的處理。比如,在圖12的示例中,對用于避免犬A的沖突判定區域與犬B的沖突判定區域發生重復的移動向量B、與用于避免犬A的沖突判定區域與犬C的沖突判定區域發生重復的移動向量C進行合成,從而計算出表示應使犬A移動的方向及移動量的移動向量(合成移動向量)。
在步驟S30,對在步驟S18中選擇的目標(這里是犬A)的配置坐標51上,加上在步驟S28中合成的移動向量,由此,使該目標(這里是犬A)移動到不與其它目標沖突的位置。此外,在重復步驟S20~S24從而在步驟S24中只算出了一個移動向量的場合下,利用該移動向量來更新配置坐標51。在步驟S24中一個移動向量也未算出的場合下,不必在此更新配置坐標51。
在步驟S32,判斷所有犬A~犬C的沖突判定處理是否已結束(即,在步驟S18,是否已將所有的犬均作為沖突判定處理的對象來選擇),如果已結束,則進入步驟S34,如果尚有在步驟S18中未作為處理對象來選擇的犬,則對該犬執行步驟S18~S30的處理。
在步驟S34,基于在步驟S30中更新的各犬的配置坐標51,來生成圖5所示的游戲圖像。在步驟S34中生成的游戲圖像,被暫存于未圖示的幀緩沖器內,然后按規定的定時,在第二LCD12的顯示畫面上顯示出來。
在步驟S36,判斷游戲者是否發出了結束游戲的指令,在發出游戲結束指令之前,按照比如六十分之一秒的周期來重復執行步驟S12~S34的處理。
如上所述,根據本實施方式,由于利用球體的沖突判定區域來進行犬的沖突判定,因而可大幅降低沖突判定所需的計算量。此外,由于根據犬的狀態或犬的周圍狀態來適宜改變該球體的大小及位置,因而犬的活動便更為自然。
在本實施方式中,說明了虛擬三維空間內的目標的沖突判定,但本發明不限于此,本發明也可適用于二維虛擬空間內的目標沖突判定。
在本實施方式中,說明了作為沖突判定區域,對每個目標設定一個球體的示例,但本發明不限于此,也可以作為沖突判定區域,對一個目標設定多個球體,且根據該目標的形狀或該目標的周圍狀態,來改變這些球體中至少一個的大小及/或位置。此外,沖突判定區域不限于球體,如果比目標的形狀更為簡單,則也可以是任意的形狀。作為球體之外的沖突判定區域的優選形狀示例,可舉出橢圓體、長方體及圓柱。
在本實施方式中,所說明的是按圖7所示的六種狀態(狀態A~F)的每一個,來改變沖突判定區域的位置或大小的示例,但本發明不限于此。比如也可以在設定某個目標(暫稱為第一目標)的沖突判定區域時,根據第一目標的當前位置(比如根據圖8F中犬A是否侵入通路的附近區域),來改變該沖突判定區域的位置或大小,也可以根據第一目標與其它目標的位置關系(比如根據圖8F中犬A與障礙物A及障礙物B雙方的接近距離是否為一定距離以上),來改變該沖突判定區域。也可以根據第一目標的附近溫度(在虛擬三維空間內虛擬設定的溫度),來改變該沖突判定區域。
在本實施方式中,所說明的是一種如圖7所示的、各狀態所對應的沖突判定區域的大小由數值來規定的示例,但本發明不限于此,沖突判定區域的大小也可以由函數來規定。比如,也可以與從地面至犬的頭頂為止的距離成比例,來改變沖突判定區域的大小。對沖突判定區域的中心位置也同樣,在本實施方式中,所說明的是一種如圖7所示的、各狀態所對應的沖突判定區域的中心位置及大小由實際值來規定的示例,但本發明不限于此。比如也可以以匍匐狀態(圖7的狀態A)的沖突判定區域作為基本沖突判定區域,對各狀態,利用規定了以該基本沖突判定區域為基準時的中心位置的偏差方向·偏差量及大小的差分值的沖突判定區域列表,來設定沖突判定區域。在該場合下,針對比如圖7的狀態B的沖突判定區域的半徑,被規定為「-20」。
以上詳細說明了本發明,但前述說明不過用來例示本發明,并非限定其范圍。毋庸贅言,可以不脫離本發明的范圍來進行各種改良及變形。
在本說明書中,參照并引進了特愿2005-057658號日本專利申請的內容。
權利要求
1.一種沖突判定方法,用于判定顯示單元所顯示的虛擬空間中第一目標與第二目標的沖突,其特征在于,包括更新步驟,其用于對存儲于存儲單元的前述第一目標或前述第二目標的位置信息進行更新;第一設定步驟,其用于對前述第一目標設定沖突判定區域,該區域是與第一目標的形狀不同形狀的沖突判定區域,其大小及/或位置隨著該第一目標的狀態或該第一目標的周邊狀態而異;第二設定步驟,其用于對前述第二目標設定沖突判定區域;沖突判定步驟,其通過判定在前述第一設定步驟中設定的前述第一目標的沖突判定區域與在前述第二設定步驟中設定的前述第二目標的沖突判定區域是否重復,來判定該第一目標與該第二目標的沖突。
2.根據權利要求1所述的沖突判定方法,其特征在于在前述第一設定步驟中對前述第一目標設定的沖突判定區域,具有比該第一目標的形狀更為簡單的形狀。
3.根據權利要求1所述的沖突判定方法,其特征在于在前述第一設定步驟中對前述第一目標設定的沖突判定區域,只由一個球體來構成。
4.根據權利要求1所述的沖突判定方法,其特征在于在前述第一設定步驟中,對前述第一目標設定沖突判定區域,該區域的大小及/或位置在該第一目標與其它目標即第三目標相結合時及非結合時是不同的。
5.根據權利要求4所述的沖突判定方法,其特征在于在前述第一設定步驟中,對前述第一目標設定沖突判定區域,該區域在該第一目標與其它目標即第三目標相結合時,包含該第三目標的至少一部分。
6.根據權利要求1所述的沖突判定方法,其特征在于在前述第一設定步驟中,對前述第一目標設定沖突判定區域,該區域在容許該第一目標與其它目標接觸的狀態時,小于不容許接觸的狀態時。
7.根據權利要求1所述的沖突判定方法,其特征在于在前述第一設定步驟中,對前述第一目標設定沖突判定區域,該區域的大小及/或位置,隨著該第一目標的當前位置或該第一目標與其它目標的位置關系而異。
8.根據權利要求1所述的沖突判定方法,其特征在于前述第一設定步驟包括從前述存儲單元,讀出設定為規定的大小及位置的前述第一目標的基本沖突判定區域的步驟;根據該第一目標的狀態或該第一目標的周邊狀態,來變更所讀出的該基本沖突判定區域的大小及/或位置的步驟。
9.根據權利要求1所述的沖突判定方法,其特征在于在前述第一設定步驟中,參照沖突判定區域列表來設定前述第一目標的沖突判定區域,其中沖突判定區域列表按照所設想的每種前述第一目標的狀態或該第一目標的周邊狀態而規定了前述沖突判定區域的大小及位置。
10.根據權利要求1所述的沖突判定方法,其特征在于還包括移動步驟,其用于當在前述沖突判定步驟中檢測出前述第一目標與前述第二目標發生沖突時,對前述存儲單元中存儲的前述第一目標或前述第二目標的位置信息進一步更新,由此,使該第一目標及該第二目標的至少一個移動到前述第一目標的沖突判定區域與前述第二目標的沖突判定區域不重復的位置;輸出步驟,其用于參照前述存儲單元中存儲的前述第一目標或前述第二目標的位置信息,來生成包含前述第一目標及前述第二目標的圖像,并輸出到前述顯示單元。
11.一種沖突判定裝置,用于判定顯示單元所顯示的虛擬空間中第一目標與第二目標的沖突,其特征在于,具有前述顯示單元;存儲單元,其至少存儲前述第一目標及前述第二目標的位置信息;更新單元,其對前述存儲單元中所存儲的前述第一目標或前述第二目標的位置信息進行更新;第一設定單元,其對前述第一目標設定沖突判定區域,該區域是與第一目標的形狀不同形狀的沖突判定區域,其大小及/或位置隨著該第一目標的狀態或該第一目標的周邊狀態而異;第二設定單元,其對前述第二目標設定沖突判定區域;沖突判定單元,其通過判定前述第一目標的沖突判定區域與前述第二目標的沖突判定區域是否重復,來判定該第一目標與該第二目標的沖突。
全文摘要
本發明提供一種沖突判定方法及沖突判定裝置。對虛擬三維空間中的犬目標而言,根據犬或其周圍的狀態,比如在匍匐狀態下,將中心處于犬的胸部、半徑為30的球體設定為沖突判定區域,在站立的狀態下,將中心處于腰部、半徑為10的球體設定為沖突判定區域,在與虛擬三維空間內的其它犬玩耍的狀態下,將中心處于頭部、半徑為10的球體設定為沖突判定區域。利用如此設定的沖突判定區域,來進行與其它目標的沖突判定。由此,可抑制沖突判定所需的計算量的增加,同時可進行對應于狀況的適當的沖突判定。
文檔編號G06T19/00GK1828670SQ20051009744
公開日2006年9月6日 申請日期2005年12月28日 優先權日2005年3月2日
發明者味岡嘉孝, 水木潔 申請人:任天堂株式會社