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