最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【任天堂】超級馬力歐64專利 US6139433(節(jié)選)

2023-10-05 16:03 作者:Posyol  | 我要投稿

【任天堂】超級馬力歐64專利 US6139433(節(jié)選)

文章末尾附該超級馬力歐64相關專利US6139433原文和附圖

《超級馬力歐64》在游戲史上的地位如何?
https://www.zhihu.com/question/56000001?utm_id=0

《超級馬力歐64》1996年開發(fā)者訪談
【英】https://shmuplations.com/mario64/
【中】https://zhuanlan.zhihu.com/p/261712273

《超級馬力歐64》粘土模型,出自非官方攻略(圖片來自Nintendo Life網(wǎng)站)。有趣的是,開發(fā)團隊并未使用過這種藍圖,而是在開發(fā)過程中將一切創(chuàng)作出來。

Random: This Japanese Super Mario 64 Guide Book Is Simply Adorable

https://www.nintendolife.com/news/2016/05/random_this_japanese_super_mario_64_guide_book_is_simply_adorable

任天堂與 Super Mario 64 和 Nintendo 64 相關的US6139433號專利

任天堂與?Super Mario 64?和 Nintendo 64 相關的該US6139433號專利被引用數(shù)多達61,此份專利曾被世嘉、索尼互娛、科樂美、南夢宮、史克威爾·艾尼克斯、微軟、三星、迪士尼、Zynga、AutodeskAT&T、惠普(Hewlett Packard Enterprise)、美光科技(Micron Technology)等全世界眾多行業(yè)的多家知名公司所引用。

任天堂該專利曾被世嘉、索尼互娛、科樂美、南夢宮、史克威爾·艾尼克斯、微軟、三星、迪士尼、Zynga、Autodesk、AT&T、惠普、美光科技等全世界眾多行業(yè)的知名公司所引用
任天堂該專利曾被世嘉、索尼互娛、科樂美、南夢宮、史克威爾·艾尼克斯、微軟、三星、迪士尼、Zynga、Autodesk、AT&T、惠普、美光科技等全世界眾多行業(yè)的知名公司所引用
任天堂該專利曾被世嘉、索尼互娛、科樂美、南夢宮、史克威爾·艾尼克斯、微軟、三星、迪士尼、Zynga、Autodesk、AT&T、惠普、美光科技等全世界眾多行業(yè)的知名公司所引用
任天堂該專利曾被世嘉、索尼互娛、科樂美、南夢宮、史克威爾·艾尼克斯、微軟、三星、迪士尼、Zynga、Autodesk、AT&T、惠普、美光科技等全世界眾多行業(yè)的知名公司所引用


該任天堂US6139433號專利,優(yōu)先權日為1995年11月22日,過期日為2015年11月22日。

任天堂US6139433號專利,優(yōu)先權日期為1995年11月22日,過期日為2015年11月22日

任天堂US6139433號專利的國際專利分類:

A63F 9/22
A63F 13/02
A63F 13/06
A63F 13/10

G05G 9/00
G05G 9/047
G06F 3/033
G06F 3/038
G06F 3/048
G06F 19/00
G06T 15/10

CPC分類(Cooperative Patent Classification)

A63F 13/5255
A63F 13/42
A63F 13/55
A63F 13/95
A63F 2300/1018
A63F 2300/201
A63F 2300/206
A63F 2300/636
A63F 2300/64
A63F 2300/6653
A63F 2300/6661
A63F 2300/6669
A63F 2300/6676
A63F 2300/6684
A63F 2300/807

G05G 9/047
G05G 2009/0474
G05G 2009/04759
G06F 3/038
G06F 3/0383
G06F 3/04815
G06F 21/31
G06F 21/51
G06F 21/79
G06F 21/85
G06F 2203/0382
G06F 2221/2109
G06T 15/10

任天堂US6139433號專利的國際專利分類、CPC分類



Video game system and method with enhanced three-dimensional character and background control due to environmental conditions

受環(huán)境條件影響、具有增強的三維角色和背景控制功能的視頻游戲系統(tǒng)和方法


ABSTRACT

本發(fā)明涉及一種視頻游戲系統(tǒng),它包括一個可插入主機的游戲卡帶,主機具有主處理器、3D圖形生成協(xié)處理器、可擴展的主內(nèi)存和玩家控制器。該系統(tǒng)還包括一個多功能外圍處理子系統(tǒng),它可以執(zhí)行處理玩家控制器輸入/輸出的命令,從而減輕圖形處理子系統(tǒng)的負擔。該視頻游戲方法涉及游戲級別組織特征、攝像機視角或視點控制特征,以及廣泛的動畫和角色控制特征。該系統(tǒng)根據(jù)各種條件和玩家操作的多個不同控制鍵/按鈕/開關,自動改變“攝像機”角度(即三維世界中顯示的視點)。該視頻游戲系統(tǒng)和方法還具有一個獨特的玩家控制器,它允許玩家以前所未有的程度控制角色在三維世界中的探索。玩家控制的角色可以通過組合操縱桿和/或十字開關和/或控制鍵來以多種不同的方式進行控制,并且生成了廣泛的動畫效果。


FIELD OF THE INVENTION

這篇專利的發(fā)明領域部分是關于一種提供增強交互式三維角色和背景屏幕效果以及玩家控制能力的視頻游戲設備和方法。更具體地說,該發(fā)明涉及一種視頻游戲系統(tǒng),包括基于操縱桿的多功能玩家控制器和獨特的視頻游戲方法,具有開放級別的視頻游戲組織、自動和用戶控制的攝像機視角修改功能以及廣泛的角色控制和動畫特性,為視頻游戲帶來了新時代。


BACKGROUND AND SUMMARY OF THE INVENTION

基于微處理器的家庭視頻游戲系統(tǒng),如任天堂娛樂系統(tǒng)( Nintendo Entertainment System)和超級任天堂娛樂系統(tǒng)( Super Nintendo Entertainment System),部分原因是它們可以交互式地產(chǎn)生涉及許多動畫移動對象的令人興奮的視頻圖形,因此取得了巨大的成功。這里描述的視頻游戲系統(tǒng)和方法允許進行涉及具有遠超這些和其他已知視頻游戲系統(tǒng)的深度和真實感的三維圖像的游戲玩法。視頻游戲系統(tǒng)具有獨特的玩家控制器,它允許在前所未有的程度上控制角色對三維世界的探索。

本發(fā)明提供了視頻游戲方法,標志著視頻游戲玩法的新時代。根據(jù)本發(fā)明的視頻游戲方法涉及游戲級別組織特性、攝像機視角或視點控制特性,以及廣泛的動畫和角色控制特性。

根據(jù)本發(fā)明的一個示例性視頻游戲實施例,該實施例目前由發(fā)明人的受讓人以"Super Mario 64"的名字銷售,用于在Nintendo 64視頻游戲系統(tǒng)上玩,一座城堡作為進入許多不同目標或級別的入口。一旦進入給定的目標或級別,玩家試圖完成一組獨立的目標,如找回隱藏在整個目標中的一組星星。通常,在現(xiàn)有技術的視頻游戲中,一旦玩家完成了特定級別的要求,玩家就會自動提升到下一個級別。根據(jù)一個示例性實施例,一旦玩家積累足夠的星星提升到下一個級別,玩家不會被自動推進到下一個級別。相反,玩家可以繼續(xù)在當前級別玩,或者退出并返回到公共城堡區(qū)域。然后,玩家可以在城堡內(nèi)選擇一條路徑重新進入與已經(jīng)達到的級別相關聯(lián)的已經(jīng)完成的目標,或者選擇探索城堡區(qū)域。實際上,本發(fā)明的視頻游戲方法將所有已經(jīng)完成的目標納入開放級別環(huán)境。

根據(jù)一個示例性實施例,玩家不必完成所有目標(例如,在目標中積累所有可能的星星),就可以進入更深層次的目標。因此,可以退出第一目標,轉移到不同目標,然后返回第一目標尋找更多隱藏的星星。在特定階段或目標中沒有固定順序讓玩家完成預定目標(如收集星星)。此外,兩個不同玩家通過完成完全不同或基本不同的目標可能會晉升到更高階段。

在這里描述的示例性實施例中,用戶進入一個三維城堡,在城堡門提供通往有畫作掛在城堡墻上的房間。玩家通過跳進畫作并進入畫作描繪出來的三維世界來進入目標。根據(jù)本發(fā)明的一個實施例,畫作區(qū)域(例如,由高度定義)中玩家控制角色(例如Mario)跳躍進去會影響目標環(huán)境(例如顯示出來目標水平取決于Mario跳躍進去畫作區(qū)域)。

本視頻游戲方法允許用戶通過激活多個不同的控制器鍵/按鈕/開關(例如,在示例實施中的四個"C"按鈕)來操縱"攝像機"角度(即,三維世界中顯示的視點)。控制鍵允許用戶隨時拉近以獲得特寫鏡頭,或拉遠以獲得廣角視圖,或向左右平移攝像機以改變視角。這種用戶啟動的攝像機操縱允許玩家更好地判斷跳躍或更準確地確定物體相對于玩家控制的角色的位置。例如,一個攝像機視角控制按鈕允許用戶切換到一個調整為直接在玩家控制的角色后面的視角。這樣,游戲中需要穿越非常狹窄的平臺或封閉空間的部分可能會更成功地穿越。射擊方向可以通過操作獨特控制器的操縱桿來改變角色頭部的方向,從而平滑地控制玩家想要看到的方向轉換。通過利用切換三維顯示視角的能力,玩家可以有利地增強游戲成功率,獲得更好的攻擊跳躍、導航狹窄邊緣或發(fā)現(xiàn)角落里有什么的角度。因此,玩家可以通過明智地改變攝像機角度獲得比其他方式可能的更高分數(shù)。

根據(jù)本發(fā)明的一個示例實施方式,本視頻游戲系統(tǒng)會根據(jù)被控角色的情況自動改變攝像機的移動方向或修改視角,例如,他是在城堡內(nèi)部、城堡外部、房間內(nèi)部、奔跑、飛行、游泳等。在游戲處理器檢測到例如存在墻壁在例如玩家控制的角色和攝像機視點之間時,會計算出防止攝像機的攝像頭和可操作對象之間產(chǎn)生阻礙所需的攝像機移動。然后根據(jù)計算出的移動角度將攝像機移動到新位置。根據(jù)角色的情況自動改變攝像機視角以選擇最佳攝像機角度,使玩家可以享受在三維世界中體驗到的視覺效果。

根據(jù)本發(fā)明的示例實施方式,視頻方法考慮了廣泛的動畫效果和角色控制技術。例如,可以通過輕微的控制器操縱桿移動或通過更大的操縱桿角位移來改變被控角色的步伐,同時控制角色在三維世界中的移動方向超過360度。玩家控制的角色的移動也作為他所站立的表面地形的函數(shù)進行控制。例如,角色的移動速度會根據(jù)角色是否站在水平向上或向下傾斜的平面上而改變。速度變化也是作為表面摩擦系數(shù)函數(shù)進行控制的,例如,表面摩擦力小,如冰或雪,或表面摩擦力大,如草地。玩家控制的角色可以通過使用操縱桿和/或十字開關和/或控制鍵的組合以多種不同的方式進行控制。對于按下特定控制鍵的解釋取決于角色在三維世界中的狀態(tài)和位置。例如,如果Mario處于靜止或靜態(tài)狀態(tài),通過操縱操縱桿,角色將被控制為奔跑。然而,如果在操縱桿被操作之前按下一個被稱為"Z"按鈕的控制鍵,角色將顯示為蹲下。進一步的操縱桿操作將使角色看起來像是在爬行。如果Z按鈕不是從靜止位置按下,而是在Mario被控制跳躍后由于按下A按鈕而按下,則Mario會砸地面而不是像上面描述的那樣蹲下。

玩家控制的角色可以被控制進行連續(xù)跳躍、連續(xù)踢腿、后空翻、長跳等。此外,角色會對環(huán)境條件做出反應,如風、有害氣體的存在(會觸發(fā)咳嗽序列)以及許多其他模擬真實環(huán)境反應的效果。通過控制玩家控制的角色在運動中的身體方向,進一步模擬了真實的動畫。例如,如果角色正在快速奔跑,角色的上半身會向前傾斜。另一方面,如果角色正在向一個方向或另一個方向轉彎,角色的上半身會顯示為向轉彎的方向傾斜。

根據(jù)本發(fā)明的另一個實施方式,根據(jù)角色的移動速度修改用于顯示玩家控制的角色的多邊形數(shù)量,其中在更高速度時減少多邊形數(shù)量。在低級速度下,用預定數(shù)量的多邊形繪制角色,在高級速度下,用減少數(shù)量的多邊形繪制角色,除了用于繪制臉部的多邊形與第一級速度相同。以這種方式,角色被模擬成一種設計為對用戶最真實的方式,用戶在動畫角色運動過程中更可能關注角色臉部,而不是身體。


BRIEF DESCRIPTION OF THE DRAWINGS

通過參考以下詳細描述的當前優(yōu)選的示例實施方式以及與圖紙的連接,可以更好地和更完全地理解本發(fā)明的這些和其他特性和優(yōu)點,其中:

圖1是根據(jù)本發(fā)明的一個示例實施方式的視頻游戲系統(tǒng)的透視圖;

圖2是圖1中顯示的視頻游戲控制臺和游戲卡帶的方框圖;

圖3A、3B和3C是視頻游戲控制臺和卡帶的示例,更詳細的實現(xiàn),如圖2中的方框圖所示;

圖4A-F顯示了使用本文所述系統(tǒng)可以實現(xiàn)的示例3D屏幕效果;

圖5是圖2中顯示的外設接口的方框圖;

圖6是首選控制器頂部的外部透視圖;

圖7是圖6控制器底部的外部透視圖;

圖8是控制器操縱桿的示例實施方式的內(nèi)部結構;

圖9是圖6控制器的方框圖;

圖10是描述一個示例通用游戲程序流程和組織的流程圖;

圖11A是關于標題屏幕處理的流程圖; 圖11B顯示了一個示例動畫對象和跟蹤對象的攝像機路徑顯現(xiàn)軌跡,與圖11A流程圖相關;

圖11C、D、E、F和G顯示了示例標題屏幕顯示;

圖12是描述涉及城堡外處理操作一般順序的流程圖;

圖13A和13B是一個流程圖和概念性圖表,用于解釋跟蹤玩家達成目標情況的操作序列;

圖14A描繪了涉及目標進步相關門開啟處理程序中涉及的事件序列;

圖14B示意性地演示了一個說明性和示例性的開啟城堡門并前進的標準;

圖15A和15B是描述城堡一樓處理的流程圖;

圖15C示意性地描繪了城堡布局,包括一樓、地下室、陽臺、二樓、三樓和城堡外的庭院;

圖15D顯示了一個示例目標入口相關屏幕顯示;

圖16是一個流程圖,顯示了角色的目標入口方式對目標狀態(tài)的影響;

圖17是關于暫停模式處理的流程圖;

圖18是關于暫停模式攝像機處理的流程圖;

圖19A和19B顯示了改變攝像機視角相關處理;

圖20A-20H是用于解釋圖19A和19B處理的攝像機處理相關圖表;

圖21和22是描述攝像機模式處理的流程圖;

圖23A-23E描繪了示例攝像機模式;

圖23F-L舉例說明了玩家通過激活其中一個圖6控制鍵來啟動改變攝像機視角可能生成的屏幕顯示效果;

圖24A和24B是一個流程圖,指示如何根據(jù)檢測到的Mario的條件,或者在檢測到Mario處于特定情況時,自動控制改變攝像機模式;

圖25A-C顯示了一個玩家控制的角色在具有不同坡度的表面上;

圖26A和B描繪了示例地形表面和相關攝像機模式;

圖27A和27B是流程圖,指示玩家控制的角色,例如Mario,是如何被控制的;

圖27C-27J顯示了各種示例玩家控制器啟動的動畫效果;

圖28A、28B和28C是流程圖和圖表,描述了控制顯示角色速度的例程;

圖29是關于選擇用于生成角色的多邊形數(shù)量的流程圖;

圖30是一個流程圖,舉例說明了角色如何響應環(huán)境條件;

圖31是一個流程圖,指示如何在跑步或角度運動期間控制角色的身體方向;

圖32是一個流程圖,指示環(huán)境或時間對Mario的影響;

圖33A和33B是與控制器操縱桿在坐標系統(tǒng)中的物理傾斜量相關的圖表;

圖34A和34B舉例說明了與操縱桿重置相關的屏幕效果。


DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENT

......

本發(fā)明針對的是一種新時代的視頻游戲方法,其中玩家可以完全與使用上述視頻游戲系統(tǒng)顯示的復雜三維環(huán)境進行交互。本發(fā)明針對的是具有獨特的游戲級別組織特性、動畫/角色控制特性和多個“攝像機”角度特性的視頻游戲方法。本發(fā)明的一個特別優(yōu)選的實施例是用于在受讓人的Nintendo 64視頻游戲系統(tǒng)上玩Super Mario 64游戲,該游戲已在上文中部分描述。

圖10是一個流程圖,描述了本方法的一般游戲程序流程和組織。首先概括描述圖10流程圖中表示的處理的各種獨特和/或重要方面,然后結合下面的其他圖形詳細討論。例如,在將包含本發(fā)明實施例(如Super Mario 64游戲卡帶)的程序的游戲卡帶插入控制臺52并打開電源后,開始標題屏幕處理(802, 804)。獨特的標題處理提供了一種機制,允許用戶在開始游戲前熟悉控制器56,如圖6至9所示。如下面將進一步描述,標題處理程序生成Mario的臉部顯示,同時允許用戶使用各種控制鍵和例如控制器操縱桿45按需要扭曲臉部。此外,標題屏幕處理允許用戶改變查看Mario的“攝像機角度”。

通過按下控制器開始鍵,然后顯示選擇文件屏幕,在其中可以選擇四個游戲文件中的一個。玩家的進度被保存到選定的文件中。此外,玩家可以選擇立體聲、單聲道或耳機音頻模式。選擇文件屏幕還允許查看每個保存文件的分數(shù),并允許將顯示切換到玩家的分數(shù)和迄今為止的最高分數(shù)之間。用戶可以通過選擇文件屏幕將一個保存文件的內(nèi)容復制到另一個文件中,以便用戶可以玩其他人保存的游戲而不影響其他玩家保存的數(shù)據(jù)。此外,還提供了刪除選定文件中保存數(shù)據(jù)的選項,以便從游戲開始時開始游戲。當玩家再次按下開始鍵時,游戲開始。

在本示例實施例中,游戲以“Mario”角色探索圍繞圖4A-4F中描繪的城堡展開的三維世界為特色。啟動一個城堡外處理程序(806),該程序允許用戶控制角色Mario在城堡地面上漫步,并通過城堡周圍的護城河游泳,以獲得使用控制器操縱桿45和其他控制鍵可用于玩家的許多角色控制技術。

通過控制Mario進入城堡門(最好在圖4E中顯示),啟動一個目標前城堡內(nèi)部程序(810)。一旦進入城堡,玩家就有自由來控制Mario穿過城堡中的各個房間,而不是立即進入例如十五個三維目標之一,這些目標可以通過各種城堡房間進入,如下面將進一步解釋。

通常,玩家通過控制Mario跳過一幅畫,進入世界(這個世界可能由掛在城堡房間墻上的畫所代表)。進入十五個目標中的一個會啟動目標或級別處理程序(812)。十五個目標中的每一個都有預定數(shù)量的獨立目標,例如7個,需要在其中完成。通常,目標是觸摸目標中的七顆星中的一顆。玩家可以自愿退出目標,也可以被敵人擊敗。

玩家可以選擇重新進入相同的目標或嘗試進入另一個目標(814),如果是這樣,程序就會回到塊(812)的目標級別處理。如果沒有選擇相同或其他目標,那么用戶就可以控制角色在城堡內(nèi)部移動(816),因此程序可能會回到目標前,城堡內(nèi)部處理(810)。或者,玩家可以選擇城堡外部處理(818)。如果選擇了城堡外部處理,那么程序就會回到城堡外部處理程序(806)。本質上,流程圖塊814、816和818描述了用戶選擇不同的三維世界目標或選擇在城堡內(nèi)部或外部漫游的自由。

如上所述,進入Super Mario 64的十五個目標或級別之一,是通過玩家跳入掛在城堡房間墻上的畫來實現(xiàn)的。玩家能否進入一幅畫取決于他或她能否打開通向目標的門。通過收集星星來獲得通向門和其相關目標的訪問權限。每個目標中都隱藏著七顆星。通過完成目標目標并觸摸目標上的星星,可以獲得六顆星。通過收集散布在目標各處的預定數(shù)量的硬幣,可以獲得第七顆星。玩家不必獲得特定目標中所有的星星就可以進入下一個目標。此外,玩家可以退出一個目標,并在以后的時間點重新進入以獲取以前未獲得的星星。

圖11A是一個與標題屏幕處理相關的流程圖。然而,該流程圖也適用于游戲結束的演示或其他希望允許玩家操縱顯示字符的演示。圖11B顯示了一個動畫對象和“攝像機”路徑(顯示的視點)的軌跡,這個路徑似乎在跟隨對象。在這樣的標題和游戲結束演示中,攝像機的位置是時間函數(shù)。在給定的時間“N”,如圖11B所示,攝像機有一個相關的攝像機位置角度,顯示的角色有相關的位置和動畫數(shù)據(jù)。在演示中,如在標題屏幕處理過程中,玩家的隨機控制器操作影響了明顯的“攝像機”位置。玩家可以將攝像機向上、向下或向不同的方向移動。

如圖11A所示,在演示開始時,時間N被設置為零(825),然后,游戲處理器從內(nèi)存中的數(shù)據(jù)表訪問時間N處的攝像機位置和其角度(826)。然后在827處進行檢查,以確定是否操作了控制器的“攝像機”控制“C”按鈕。如果是這樣,那么攝像機的位置和角度將相應地改變,這種方式將在下面(828)描述。如果在塊827處的檢查表明沒有操作攝像機控制鍵,那么就啟動對象位置控制,使得游戲程序處理系統(tǒng)從內(nèi)存中的數(shù)據(jù)表訪問時間N處的對象位置和動畫數(shù)據(jù)(829)。然后進行檢查,以確定是否操作了圖6中的對象控制鍵/操縱桿(830)。如果操作了對象控制鍵或操縱桿,則根據(jù)玩家控制輸入改變對象位置和其動畫(831)。在831處進行處理后,其中改變了對象位置和動畫數(shù)據(jù),或者如果沒有操作對象控制鍵或操縱桿,則根據(jù)先前獲得的攝像機位置和角度顯示對象(832)。然后,在相關計數(shù)器中增加時間N(833),并將程序分支回到塊826,以反復繼續(xù)標題屏幕處理或其他演示處理,直到例如,在標題屏幕處理中,玩家選擇開始游戲。

圖11C、D、E和F顯示了一個示例標題屏幕顯示序列。在圖11C中,在開屏幕上出現(xiàn)Mario的臉。用戶可以通過按A按鈕來顯示一個手形光標來移動Mario并玩弄他的臉。參見例如圖11D。用戶能夠“捏”Mario的臉。使用圖6中顯示的操縱桿控制器,可以將顯示的光標移動到各種位置,并使用A按鈕來捏顯示的角色。通過按住A按鈕移動光標,可以拉伸Mario的臉。釋放A按鈕后,臉部恢復正常。在釋放A按鈕之前,如果用戶按住R按鈕,則可以捏更多區(qū)域的Mario的臉,并且臉會保持其扭曲形狀,如圖11D所示。通過按B按鈕,可以使Mario的臉縮放和縮放,如圖11E所示。通過操縱上下“C”按鈕,如圖11F所示,可以旋轉Mario的臉。通過使用左右“C”控制鍵,如圖11G所示,可以左右旋轉Mario的臉。

圖12顯示了與圖10的塊806中先前描述的城堡外部處理相關的操作的一般序列。在標題屏幕處理之后,開始城堡外部處理,其中玩家可以控制Mario在城堡外部自由移動(835, 836),從而允許用戶使用圖6-9中顯示的控制器56獲得本文中描述的許多角色控制技術的經(jīng)驗。然后在塊837處進行檢查,以確定Mario是否觸摸了城堡門。如果Mario沒有觸摸城堡門,那么程序就會回到塊836,Mario繼續(xù)在城堡地面上自由移動,并根據(jù)玩家的愿望在城堡周圍的護城河中游泳。如果Mario觸摸了城堡門,那么就啟動城堡門打開過程(838),允許Mario進入城堡。當Mario進入城堡時,他繼續(xù)到達城堡的第一層(839),程序分支到圖10的塊810的目標前,城堡內(nèi)部處理程序,該程序在圖15A和15B中詳細描述。

在描述城堡內(nèi)部處理程序之前,首先描述目標達成和目標或級別進展。圖13A描繪了跟蹤玩家達成目標的操作序列,例如,在游戲目標或級別中取得進展。目標檢查處理開始時,首先確定Mario是否成功獲得了一個硬幣(875, 877)。如果Mario獲得了一個硬幣,那么就更新Mario在目標中獲得的硬幣數(shù)量。如果Mario沒有獲得硬幣,那么程序就會分支到塊887進行進一步處理。如果Mario獲得了一個硬幣,那么就更新Mario獲得的硬幣數(shù)量(879),然后檢查是否Mario已經(jīng)獲得了超過一百個硬幣(881)。如果當前獲得的硬幣數(shù)量少于一百個,那么程序就會分支到887進行進一步處理。如果Mario已經(jīng)獲得了一百個或更多的硬幣,那么就檢查883處是否已經(jīng)顯示了第七顆星。根據(jù)本示例實施例,每個目標最初都有六顆星與之相關聯(lián),玩家可以訪問這些星。一旦玩家積累了一百個硬幣,那么就會出現(xiàn)第七顆星,如果它還沒有被顯示出來(885)。以這種方式,第七顆星在積累了一百個硬幣之前有效地被隱藏起來。如果在塊883處的檢查表明第七顆星已經(jīng)被顯示出來,那么處理就會分支到塊887。在塊887處進行檢查,以確定Mario是否在目標處理過程中獲得了任何星星。如果Mario沒有獲得星星,則程序分支到塊893返回到主游戲處理程序。如果Mario獲得了一個星星,則將玩家獲得的星星數(shù)量增加1(889),并將當前總共獲得的星星數(shù)量存儲在內(nèi)存中。在下面與圖14A相關聯(lián)的門處理過程中檢查存儲的星星數(shù)量。增加星數(shù)后,啟動一個目標達成顯示序列,在該序列中顯示例如給出勝利或和平標志的Mario,在慶祝動畫序列中(891),并將程序分支回到主程序(893)。如圖13B所示,在概念上表示一旦玩家開始一個目標(如S所表示),玩家可以達成預定數(shù)量的獨立目標G。在說明性實施例中,通過完成預定的任務或以其他方式發(fā)現(xiàn)目標中隱藏的星星,達成目標G。根據(jù)說明性實施例,獲得一顆星并不是獲得另一顆星的先決條件。

圖14A描繪了與目標進展相關的門開啟處理程序涉及的事件序列。門開啟處理程序(900)最初檢測玩家控制角色,即Mario,是否撞到門(902)。然后,訪問需要打開撞到的門的星星數(shù)量(904)。然后進行檢查,以確定打開撞到的門所需的星星數(shù)量是否等于或小于玩家當前獲得的星星數(shù)量,這些星星數(shù)量是如圖13A所述先前存儲的。如果在塊906處的檢查表明已經(jīng)獲得了所需數(shù)量的星星,那么就開始處理生成顯示幀,模擬打開門以允許角色進入并探索相關的城堡房間。如果沒有獲得所需數(shù)量的星星,那么如塊910所示,生成一條消息,表示已經(jīng)達到的星星數(shù)量不足以打開撞到的門。門處理程序在步驟908的門開啟處理或步驟910的消息生成步驟之后退出,并分支回到主處理程序。玩家可以通過獲取門鑰匙來獲得某些城堡門的訪問權限。應該理解,訪問一個門及其相關目標或目標并不限于獲得任何預定的必需目標,如星星。

在先前藝術中的視頻游戲中,為了完成特定目標或級別并進入下一個級別,通常需要完成一整套目標目標或目標。根據(jù)本發(fā)明,每個目標或級別都有一套獨立目標,如圖13B所示。例如,在Super Mario 64中,每個目標都有一個目標,即獲取七顆星,其中一顆是通過在目標中獲取預定數(shù)量的硬幣來獲得。如圖14A中塊906所示,進行檢查以確定玩家獲得的星星數(shù)量是否超過了打開門所需的星星數(shù)量。

圖14B示意性地展示了根據(jù)本發(fā)明一個說明性實施例中打開城堡門和進步的示例標準,例如,在其中表示了十五個目標中的九個。如上所述,在說明性實施例中,每個級別或目標都有一個預定目標,例如獲取七顆星。圖14B示意性地表示了城堡各層上的九扇門,這些門通向城堡中預定的九個目標。雖然圖14B中表示了九個目標,但這個數(shù)字僅用于說明目的(本發(fā)明的一個示例實施例Super Mario 64包括15個目標)。

如圖14B所示,與其中表示的九個級別相關聯(lián)的是獲得七顆星。在圖14B中顯示的例子中,玩家可以自由地進入1-3級。通常,當進入一個目標時,會給出關于獲取一個或多個星星的目標的線索。如果需要,玩家可以隨時退出目標并稍后重新進入以獲取新的線索。然而,為了進入例如4、5或6級,玩家需要獲得二十一顆可能的星星中的預定數(shù)量。例如,可能需要十顆星才能打開通向4、5或6級的門。同樣,為了讓玩家進入7、8或9級,玩家必須已經(jīng)獲得了四十二顆可能的星星中的二十顆。以這種方式,玩家不必在每個級別中獲得最大數(shù)量的星星就可以繼續(xù)前進,并且允許玩家稍后重新進入目標以獲取在初次嘗試時未達到的額外星星。此外,還有一些星星是在不被認為是常規(guī)目標的區(qū)域中找到的。一些額外的星星是通過進入城堡中的一個隱藏區(qū)域獲得的。在這樣的隱藏區(qū)域中,通過發(fā)現(xiàn)隱藏區(qū)域中預定數(shù)量的硬幣可以獲得一顆星。此外,如果玩家在特定區(qū)域超過預定速度,可能會被授予星星。此外,玩家可能會通過與預定角色互動而獲得一顆星。如圖14B所示,兩個不同的玩家玩游戲可能會在1、2和3級達成完全不同的目標集合,例如星星,然而只要他們在前三個級別中獲得了所需數(shù)量的總星數(shù),兩個玩家都被允許訪問4、5和6級。

轉到圖15A,當Mario進入城堡第一層(925)時,開始城堡內(nèi)部處理,并顯示城堡第一層(927)。程序允許Mario在城堡內(nèi)部自由漫游。圖15C示意性地描繪了城堡布局,包括第一層、地下室、陽臺、二樓、三樓以及城堡外部的庭院。城堡本身和這個城堡布局僅僅是作為例子。應該理解,本方法設想了可以用作目標或級別入口點的各種建筑和地理布局。在本示例說明性實施例中,有十五個主要目標和幾個小目標。要進入大多數(shù)目標,玩家進入一個城堡房間并跳入掛在城堡墻上的畫中,在三維顯示序列中如圖15D所示。這些圖片作為進入各種目標的入口點,并通常代表了玩家控制角色可以跳入其中的世界。

回到圖15A,在塊929處進行檢查,以確定Mario是否觸摸了通向城堡外部的城堡門。如果Mario接觸了通向城堡外部的門,則Mario退出城堡以探索例如圖15C所示的庭院,并且程序分支到城堡外部處理如933所示以重新進入圖12城堡外部處理程序。

如圖14B所示,與其中表示的九個級別相關聯(lián)的是獲得七顆星。在圖14B中顯示的例子中,玩家可以自由地進入1-3級。通常,當進入一個目標時,會給出關于獲取一個或多個星星的目標的線索。如果需要,玩家可以隨時退出目標并稍后重新進入以獲取新的線索。然而,為了進入例如4、5或6級,玩家需要獲得二十一顆可能的星星中的預定數(shù)量。例如,可能需要十顆星才能打開通向4、5或6級的門。同樣,為了讓玩家進入7、8或9級,玩家必須已經(jīng)獲得了四十二顆可能的星星中的二十顆。以這種方式,玩家不必在每個級別中獲得最大數(shù)量的星星就可以繼續(xù)前進,并且允許玩家稍后重新進入目標以獲取在初次嘗試時未達到的額外星星。此外,還有一些星星是在不被認為是常規(guī)目標的區(qū)域中找到的。一些額外的星星是通過進入城堡中的一個隱藏區(qū)域獲得的。在這樣的隱藏區(qū)域中,通過發(fā)現(xiàn)隱藏區(qū)域中預定數(shù)量的硬幣可以獲得一顆星。此外,如果玩家在特定區(qū)域超過預定速度,可能會被授予星星。此外,玩家可能會通過與預定角色互動而獲得一顆星。如圖14B所示,兩個不同的玩家玩游戲可能會在1、2和3級達成完全不同的目標集合,例如星星,然而只要他們在前三個級別中獲得了所需數(shù)量的總星數(shù),兩個玩家都被允許訪問4、5和6級。

轉到圖15A,當Mario進入城堡第一層(925)時,開始城堡內(nèi)部處理,并顯示城堡第一層(927)。程序允許Mario在城堡內(nèi)部自由漫游。圖15C示意性地描繪了城堡布局,包括第一層、地下室、陽臺、二樓、三樓以及城堡外部的庭院。城堡本身和這個城堡布局僅僅是作為例子。應該理解,本方法設想了可以用作目標或級別入口點的各種建筑和地理布局。在本示例說明性實施例中,有十五個主要目標和幾個小目標。要進入大多數(shù)目標,玩家進入一個城堡房間并跳入掛在城堡墻上的畫中,在三維顯示序列中如圖15D所示。這些圖片作為進入各種目標的入口點,并通常代表了玩家控制角色可以跳入其中的世界。

回到圖15A,在塊929處進行檢查,以確定Mario是否觸摸了通向城堡外部的城堡門。如果Mario接觸了通向城堡外部的門,則Mario退出城堡以探索例如圖15C所示的庭院,并且程序分支到城堡外部處理如933所示以重新進入圖12城堡外部處理程序。

如果Mario沒有觸摸通向城堡外部的門,則在塊935處進行檢查,以確定Mario是否觸摸了通向地下室(如圖15C所示)的門。如果Mario觸摸了通向地下室的門,則在塊937處進行進一步檢查以確定Mario是否有打開地下室門的鑰匙。這個序列說明,除了基于達成預定目標的門(即,訪問預定數(shù)量的星星)之外,還有一些門是不能沒有鑰匙就打開的(地下室的門就是這些門之一)。玩家可能需要完成預定任務才能找到鑰匙。如果Mario確實有打開地下室門的鑰匙,那么Mario就被允許進入并在地下室中漫游(939),并且程序分支到地下室處理程序(941)。如果在937處的檢查確定Mario沒有打開地下室門的鑰匙,那么程序就會回到塊927進行進一步的城堡一樓處理。

如果在塊935處的檢查顯示Mario沒有觸摸通向地下室的門,那么在943處進行檢查,以確定Mario是否觸摸了通向二樓的門,如圖15C所示。如果Mario確實觸摸了通向城堡二樓的門,那么進行進一步檢查以確定Mario是否有打開二樓門的鑰匙(945)。如果Mario確實有打開二樓門的鑰匙,那么Mario被允許去二樓,然后顯示Mario在二樓漫游(947),并且程序分支到二樓處理程序(949)。如果在塊945處的檢查顯示Mario沒有打開二樓門的鑰匙,則程序分支回到塊927進行進一步的城堡一樓處理。

如果在943處的檢查顯示Mario沒有觸摸通向第二扇門,那么如圖15B所示,進行檢查以確定Mario是否觸摸了一樓的門1。如果Mario碰到了門1,那么Mario被允許通過跳過目標1的圖片進入目標1,而不需要任何目標達成要求。完成或退出目標1后(953),程序分支回到塊927,允許Mario在城堡一樓自由漫游。如果Mario沒有碰到門1,那么在塊955處進行檢查,以確定Mario是否觸摸了門2。在圖15B中顯示的說明性實施例中,如果Mario碰到了門2,那么進行檢查以確定Mario是否獲得了超過一個星星(957)。在這個說明性實施例中,如果Mario獲得了超過一個星星,那么Mario被允許通過跳過與目標2相關的圖片進入目標2。如果Mario沒有達成進入目標2的目標,則程序分支回到塊927進行進一步的城堡一樓內(nèi)部處理。圖15B中表示的與門相關的步驟,例如由塊955、957、959表示的門2,是圖14A中表示的與門/目標達成處理相關聯(lián)的簡化版本,圖14A詳細顯示了與開門相關聯(lián)的處理。如果在955處的檢查表明Mario沒有碰到門2,那么在961處進行檢查以確定Mario是否碰到了門3。如果Mario沒有碰到門3,則程序分支回到塊927如前所述。如果Mario碰到了門3,則進行檢查以確定Mario是否達成了進入目標3的目標。例如,在塊963處進行檢查以確定Mario是否獲得了超過三顆星。如果Mario達成了進入目標3的目標,則打開門3并允許Mario通過跳過圖1SD類型圖片進入目標3(965)。完成或退出目標3后,程序分支回到塊927進行城堡一樓處理。

如圖15D所述,通常情況下,玩家通過控制Mario跳過掛在三維城堡墻上的畫來進入目標。根據(jù)本發(fā)明的視頻游戲方法在一個示例性實施例中,目標的狀態(tài)會根據(jù)進入目標的方式而改變。僅舉一個例子,在本發(fā)明的一個實施例中,Mario跳入圖片進入目標的高度被用來控制,例如,在目標中顯示的水體的水位。水的高度或水位可能反過來影響玩家達成預定目標目標的能力。與跳入圖片進入目標相反,根據(jù)本發(fā)明的一個示例性實施例,可以使用時鐘或其他任何人、地點或事物的表示。在使用時鐘的情況下,Mario跳入時鐘的位置或時間,即,Mario的進入與時鐘的小時或分鐘指針位置之間的關系,可以用來控制進入的目標的狀態(tài)。

這種目標狀態(tài)處理如圖16所示,在首先進行檢查以確定玩家是否以條件A進入了一個目標,其中條件A可能是例如角色通過時鐘的小時指針在10點鐘位置進入。如果滿足這個條件,那么目標被設置為與10點鐘進入相關聯(lián)的預定狀態(tài)X(967)。

如果在塊966處的檢查表明沒有通過條件A進行進入,那么在967處進行檢查以確定是否通過條件B進行了進入,其中條件B可能是小時指針在12點鐘。如果通過條件B進行了進入,則將進入的階段或目標設置為另一個狀態(tài)Y(969)。如果在塊968處的檢查表明沒有通過條件B進行進入,則在970處進行檢查以確定是否以條件C進行了進入,這可能是例如分鐘指針在6。如果通過條件C進行了進入,則將進入的目標或階段設置為另一個不同的狀態(tài)Z。如果在970處的檢查確定沒有以條件C進行進入,則將階段或目標以其正常狀態(tài)進行進入。如果目標不是以其正常狀態(tài)進行進入,則在設置了目標到狀態(tài)X、Y或Z(例如,將顯示的水位改變到三個水平之一)之后,就開始進入目標,并繼續(xù)游戲。應該理解,在本發(fā)明中可以使用多于或少于三個條件來設置目標狀態(tài)。

如圖17流程圖所示,本發(fā)明的視頻游戲方法設想了廣泛的暫停模式特性。本發(fā)明示例性實施例使用了三種不同類型的暫停特性。最初,在暫停處理程序中,進行檢查以確定是否已經(jīng)啟動暫停模式(975, 977)。如果系統(tǒng)不在暫停模式中,則進行檢查以確定玩家是否按下了圖6控制器56上的開始按鈕(993)。如果按下了開始按鈕,則將系統(tǒng)置于暫停模式,即設置暫停標志(995)。如果玩家沒有按開始按鈕或者在設置了暫停模式之后,程序繼續(xù)在977處,開始圖18暫停攝像機模式處理。

如果Mario沒有觸摸通向城堡外部的門,則在塊935處進行檢查,以確定Mario是否觸摸了通向地下室(如圖15C所示)的門。如果Mario觸摸了通向地下室的門,則在塊937處進行進一步檢查以確定Mario是否有打開地下室門的鑰匙。這個序列說明,在基于達成預定目標打開門(即訪問預定數(shù)量星星)之外,還有一些門不能沒有鑰匙就打開(地下室門就是這些門之一)。玩家可能需要完成預定任務才能找到鑰匙。如果Mario確實有打開地下室門的鑰匙,那么Mario就被允許進入并在地下室中漫游(939),并且程序分支到地下室處理程序(941)。如果在937處的檢查確定Mario沒有打開地下室門的鑰匙,那么程序就會回到塊927進行進一步的城堡一樓處理。

如果在塊935處的檢查顯示Mario沒有觸摸通向地下室的門,那么在943處進行檢查,以確定Mario是否觸摸了通向二樓的門,如圖15C所示。如果Mario確實觸摸了通向城堡二樓的門,那么進行進一步檢查以確定Mario是否有打開二樓門的鑰匙(945)。如果Mario確實有打開二樓門的鑰匙,那么Mario被允許去二樓,然后顯示Mario在二樓漫游(947),并且程序分支到二樓處理程序(949)。如果在塊945處的檢查顯示Mario沒有打開二樓門的鑰匙,則程序分支回到塊927進行進一步的城堡一樓處理。

如果在943處的檢查顯示Mario沒有觸摸通向第二扇門,那么如圖15B所示,進行檢查以確定Mario是否觸摸了一樓的門1。如果Mario碰到了門1,那么Mario被允許通過跳過目標1的圖片進入目標1,而不需要任何目標達成要求。完成或退出目標1后(953),程序分支回到塊927,允許Mario在城堡一樓自由漫游。如果Mario沒有碰到門1,那么在塊955處進行檢查,以確定Mario是否觸摸了門2。在圖15B中顯示的說明性實施例中,如果Mario碰到了門2,那么進行檢查以確定Mario是否獲得了超過一個星星(957)。在這個說明性實施例中,如果Mario獲得了超過一個星星,那么Mario被允許通過跳過與目標2相關的圖片進入目標2。如果Mario沒有達成進入目標2的目標,則程序分支回到塊927進行進一步的城堡一樓內(nèi)部處理。圖15B中表示的與門相關的步驟,例如由塊955、957、959表示的門2,是圖14A中表示的與門/目標達成處理相關聯(lián)的簡化版本,圖14A詳細顯示了與開門相關聯(lián)的處理。如果在955處的檢查表明Mario沒有碰到門2,那么在961處進行檢查以確定Mario是否碰到了門3。如果Mario沒有碰到門3,則程序分支回到塊927如前所述。如果Mario碰到了門3,則進行檢查以確定Mario是否達成了進入目標3的目標。例如,在塊963處進行檢查以確定Mario是否獲得了超過三顆星。如果Mario達成了進入目標3的目標,則打開門3并允許Mario通過跳過圖1SD類型圖片進入目標3(965)。完成或退出目標3后,程序分支回到塊927進行城堡一樓處理。

如上文所述,如果系統(tǒng)處于暫停模式,那么首先進行檢查以確定Mario是否在許多三維世界目標中的一個內(nèi)部(975, 977)。如果Mario不在目標內(nèi)部,而是在城堡內(nèi),例如,那么如985所示,在這種情況下,暫停模式顯示在暫停時間時每個目標中獲得的星星數(shù)量。因此,當Mario不在特定目標內(nèi)部時,系統(tǒng)可以例如顯示在游戲的多個目標或級別中達成的星星數(shù)量或其他目標。

如果在塊979處的檢查顯示Mario在目標內(nèi)部,那么進行檢查以確定Mario是否在移動或靜止(981)。如果Mario不是靜止的,那么暫停屏幕顯示目標的名稱和當前得分(983)。如果Mario在暫停時是靜止的,那么顯示目標的名稱、得分和退出菜單以退出目標(987)。如果Mario在移動時不生成退出菜單,因為允許玩家在移動條件下退出會讓玩家能夠避免因錯誤控制Mario跑下懸崖等錯誤而受到的懲罰,例如死亡。在987、983或985的處理之后,進行檢查以確定玩家是否按下了開始按鈕(989)。如果是這樣,那么取消暫停模式(991)。如果沒有,那么程序分支到塊997、999和暫停例程退出返回到主游戲處理例程。一旦每幀調用暫停處理例程,就會連續(xù)檢查暫停模式,例如通過檢查存儲在RAM中的暫停模式指示標志。

在989、991、993或995的處理之后,開始圖18所示的暫停模式相機處理。首先進行檢查以確定是否通過檢查暫停模式標志(1001)來操作暫停模式。在給定目標的暫停模式下,可能希望顯示目標的更遠視圖以顯示周圍地形區(qū)域。然而,如果當玩家在城堡內(nèi)部或者在小房間或地牢內(nèi)啟動暫停時,這樣的視圖是不合適的。如果1001處的檢查表明沒有設置暫停,則使用游戲的正常相機處理(1007),暫停處理結束(999圖17),并返回到主游戲處理例程。如果1001處的檢查表明已經(jīng)啟動了暫停模式,則進行檢查以確定是否應該使用增加距離相機處理來描繪從其中進入暫停模式的當前目標。如果1003處的檢查表明當前目標不應該用增加距離相機處理來描繪,則暫停處理在圖17的999處退出。如果根據(jù)1003處的檢查確定需要增加距離處理,則開始增加距離相機處理(1005),然后在圖17的999處退出暫停處理例程。

本發(fā)明允許玩家控制游戲角色(例如Mario)探索廣泛的3-D環(huán)境,使得玩家有多種“相機”視角或視點。與典型的3-D游戲相比,在典型的3-D游戲中,相機視角是固定的,因此可能很難適當?shù)嘏袛嘧罾硐氲囊苿臃绞?,本發(fā)明允許玩家從許多不同角度和距離范圍觀看游戲。游戲策略要求用戶切換視角,使得目標中關鍵部分出現(xiàn)在用戶視野中。

本發(fā)明允許用戶操縱“相機角度”。如下所述,一些相機角度的調整是自動進行的。其他相機角度的調整優(yōu)選地由用戶按下圖6和7中顯示的控制鍵404C-405F(“C”按鈕)來控制。相機控制鍵的數(shù)量可以根據(jù)游戲設計師的需要進行修改。

現(xiàn)在對在三維空間中改變相機視角(視點)進行解釋。也就是說,通常在傳統(tǒng)的3D游戲中,當一個物體(例如,墻壁或敵人角色)存在于相機和玩家控制的物體(例如,Mario)之間時,如圖20A所示,玩家控制的物體(或Mario)不能被相機“拍攝”或查看。相比之下,根據(jù)本發(fā)明,可以通過實際上將相機圍繞Mario轉到其側面,如圖20A所示,使Mario始終能夠連續(xù)顯示。

簡單地說,當物體位于如圖20B所示的位置時,確定與從Mario的側面延伸出來的地形多邊形之間可能發(fā)生碰撞,在Mario和相機之間的直線上的幾個點上。在這個場合,檢查一個從每個點開始到半徑R內(nèi)垂直于XZ平面的多邊形。在確定為碰撞的多邊形P上執(zhí)行轉動相機的過程。墻面P由平面方程表示,如方程(1)所給出。

Ax+By+Cz+D=0. (1)

通過將“相機”與這個平面P平行移動來進行“相機”位置的修正。順便說一下,與平面平行的Y軸的角度是通過相同的平面方程來計算的。

結合圖19A的流程圖,詳細解釋一下,首先在第一步S101中初始化要進行碰撞確定的多邊形的編號n(n=1)。在下一步S102中,確定要檢查的多邊形數(shù)量N和多邊形編號n是否相等,即是否已經(jīng)對所有必要的多邊形進行了碰撞確定。如果在步驟S102中的檢查表明需要檢查更多的多邊形,那么在步驟S103中進行碰撞確定。

圖19B詳細顯示了步驟S103,即一個說明性的碰撞確定例程。在解釋這個碰撞確定例程之前,參考圖20C和圖20D,它們顯示了要進行碰撞確定的示例墻數(shù)據(jù)。也就是說,墻數(shù)據(jù)如圖20C所示,其中三角形多邊形如圖20D所示聚集在一起。這些各個多邊形被存儲為內(nèi)存中墻多邊形列表。

在圖19B中的第一步S201中,輸入一個點Q(Xg, Yg, Zg)和一個半徑R。順便說一下,點Q是要檢查的點,半徑R是被認為是碰撞的距離。然后在步驟S202中重置墻碰撞標志。在步驟S203中,確定是否在內(nèi)存中存儲了上述墻多邊形列表。如果存在一個墻多邊形列表,那么在下一步S204中確定考慮的多邊形是否是一個通過轉動相機來處理的多邊形。如果是這樣,那么進程進入步驟S205。

在步驟S205中,根據(jù)方程(2)計算點Q和墻多邊形平面之間的距離(dR)。

dRR=Axg+Byg+Czg+D (2)

然后在步驟S206中確定在步驟S205中計算的距離dR是否小于半徑R。當距離dR大于半徑R時,Mario和墻之間沒有碰撞,因此程序分支回到步驟S203。

如果步驟S206表明|dR|<R,那么在步驟S207中根據(jù)方程(3)計算點Q'(圖20F)的位置坐標(Xg', Yg', Zg'),點Q'是從點Q垂直到墻多邊形P的直線與墻多邊形平面的交點。

Xg'=Xg+A×dR

Yg'=Yg+B×dR

Zg'=Zg+C×dR (3)

然后在步驟S208中,確定點Q’是否在多邊形的內(nèi)側(范圍內(nèi))。在步驟S208中,根據(jù)墻的方向(值A)確定要投影到哪個平面。也就是說,當A<-0.707或A>0.707時,投影到圖20E所示的YZ平面。否則,投影到XY平面。如果投影到YZ平面,那么確定圖20F中的點Q’是否在多邊形P1的內(nèi)側。

同時,如果投影到XY平面,那么根據(jù)圖20G中的點Q’和多邊形P1的頂點確定逆時針交叉積的值是正還是負。也就是說,當多邊形平面方程中的C滿足C≧0時,如果每個得到的交叉積都是0或負數(shù),那么判斷點Q’在多邊形P的內(nèi)側。

(Y1-Yq)×(X2-X1)-(X1-Xq)×(Y2-Y1)≦0

(Y2-Yq)×(X3-X2)-(X2-Xq)×(Y3-Y2)≦0

(Y3-Yq)×(X1-X3)-(X3-Xq)×(Y1-Y3)≦0 (4)

同時,當C<0時,如果每個得到的交叉積都是0或正數(shù),那么判斷點Q'在多邊形P的內(nèi)側。

(Y1-Yq)×(X2-X1)-(X1-Xq)×(Y2-Y1)≧0

(Y2-Yq)×(X3-X2)-(X2-Xq)×(Y3-Y2)≧0

(Y3-Yq)×(X1-X3)-(X3-Xq)×(Y1-Y3)≧0 (5)

以這種方式,在步驟S208中檢查點Q’是否在多邊形的內(nèi)側,因此在范圍內(nèi)?;诖瞬襟ES209的檢查,確定點Q’是否在多邊形的內(nèi)側。如果在此步驟S209中為“是”,則在前述步驟S202中重置的墻碰撞標志被設置(步驟S210)。然后,過程返回到圖19A。

注意,上述的碰撞確定只是一個例子,應該認識到,碰撞確定也可以通過其他方法進行,這些方法對于本領域的技術人員來說是可以理解的。

回到圖19A,在步驟S103的碰撞確定之后,在步驟S104中確定是否設置了墻碰撞標志。如果在此步驟SI 04中為“否”,則不需要進行轉動處理,因此在步驟S105中增加要檢查的點的編號n,并將例程分支回到步驟S102。

如果步驟S104表明墻碰撞標志被設置,則在步驟S106和步驟S107中確定它是否在墻的背面。也就是說,確定多邊形的方向性。通過檢查法向量N和圖20H中的眼(視點)向量V的點積的符號,可以確定多邊形是否朝向相機(視點)。因此,條件表達式由方程6給出。

A=V·N=VxNx+VyNy+VzNz (6)

根據(jù)方程(6),可以分別確定,如果A≧0,墻面朝向相機(前向),而如果A<0,相機朝向墻的背面。如果存在于相機和Mario之間的平面相對于相機是前向的,那么不進行圖20A中的相機轉動。在這種情況下,在步驟S105中增加點的編號n,并將過程分支回到步驟S102。

如果相機和Mario之間的平面是后向的,那么在S107處的檢查結果為“是”,并在后續(xù)步驟S108和S109中進行轉動處理。在步驟S108中,改變相機(拍攝位置)位置的移動角度基于墻的平面方程。也就是說,關于平面方程上的三個點P1(X1,Y1,Z1),P2(X2,Y2,Z2),P3(X3,Y3,Z3)的平面方程由多項式方程表示,如方程(7)所示。

Ax+By+Cz+D=0

在此,

A=Y1(Z2-Z3)+Y2(Z3-Z1)+Y3(Z1-Z2)

B=Z1(X2-X3)+Z2(X3-X1)+Z3(X1-X2)

C=X1(Y2-Y3)+X2(Y3-Y1)+X3(Y1-Y2)

D=X1(Y2Z3-Z2Y3)+Y1(Z2X3-X2Z3)+Z1(X2Y3-Y2X3). (7)

關于法向量相對于Y軸的角度Ry由方程(8)給出

Ry=tan.sup.-1 (A/C) (8)

因此,相機的轉動角度是Ry+90°或Ry-90°。也就是說,在步驟S109中,相機圍繞Mario或可操作對象旋轉移動,方向是Ry+90°或Ry-90°。具體來說,移動到的位置更接近當前的相機位置(如圖20B中的C)。

本方法優(yōu)點在于提供了廣泛的相機模式,包括自動和用戶控制的模式。例如,一個相機控制鍵會自動從位于玩家控制角色(例如,Mario)上方和后方的相機的視角顯示三維世界。根據(jù)障礙物的位置或特定房間的大小,相機可能無法直接在Mario后面。如下面將更詳細地解釋的那樣,玩家可以控制移動以進行特寫或拉遠以獲得更遠的視圖。此外,可以移動相機左右改變角度,使玩家能夠看到Mario當前所在目標的更多內(nèi)容。對于玩家來說,操縱相機控制鍵以更好地判斷跳躍或更準確地確定物體相對于Mario的位置是非常有用的。通過按下預定的控制按鈕,可以切換到始終調整為在Mario后面的視角。這種模式在非常窄的平臺和封閉空間中很有用。可以在廣角和特寫之間切換,并可以向左或右平移,但最終相機會返回到Mario后面的這種相機模式。固定視角相機模式允許用戶在Mario跳躍過程中有一個客觀視圖,而不是從Mario的視角看到的主觀視圖。如果相機放置在一個地方,Mario可能會很快跑出視線。在查看周圍相機模式中,玩家可以進行極端特寫,并使用控制操縱桿移動Mario的頭部來掃描整個周圍環(huán)境。這種查看周圍的相機模式允許用戶查看所有地方,包括向上看以看到關卡有多大或者向下看過崖以看到是否有之前無法看到的物體,或者向遠處看以發(fā)現(xiàn)硬幣。本方法通過提供用戶選擇相機角度的能力,使用戶能夠在游戲中表現(xiàn)得更好。通過將相機向后移動,可以更好地感知前方情況。通過左右平移,用戶可以獲得更好的攻擊跳躍、導航狹窄巖架或查看拐角處情況的角度。通過改變Mario的視角,可以增加可獲得的敏捷度和精確度。如果與Mario當前位置相關聯(lián)的是一個懸崖或高塔,那么通過改變相機角度向下和向側面看,例如,可以查看之前無法查看到的目標方面。

圖21和22是一個流程圖,描述了在相機模式處理期間執(zhí)行的操作序列。如塊1500所示,設置一個初始相機模式。設置的初始相機模式可能會根據(jù)游戲開始時的特定游戲狀態(tài)而變化。因此,可以根據(jù)例如進入哪個目標或級別來修改初始相機模式,從而將相機模式設置為在初始化后恢復游戲的特定部分時最好的可用自動相機模式。如塊1502所示,然后執(zhí)行其他游戲程序處理,除了相機模式控制,如生成顯示、計算獲得的星星和硬幣數(shù)量等。然后在塊1504進行檢查以確定相機模式是否是主觀模式,例如通過主觀模式標志的狀態(tài)來指示。主觀相機模式表示相機模式視角是從玩家控制角色的主觀視點,例如從Mario頭部后方直接看。如果當前的相機模式是主觀模式,那么例程分支執(zhí)行其他對象處理1512,從而跳過Mario的移動處理,因為在主觀模式中Mario不顯示為移動或其他。

如果當前的相機模式不是主觀模式,那么進行檢查以確定當前的相機模式是否處于事件拍攝模式(1506)。事件拍攝模式是一種相機模式,在這種模式中,例如生成一系列顯示幀來描繪玩家發(fā)現(xiàn)星星的情況。這種模式也包括與游戲標題屏幕和結束屏幕演示相關聯(lián)的顯示序列。事件拍攝模式可以由任何預定的游戲事件觸發(fā)。如果相機模式是事件拍攝模式,那么停止Mario的移動(即玩家控制對象)和“敵人角色”的移動,從而在事件檢測前保持Mario和敵人之間的相對位置(1510)。此外,在事件拍攝模式中,根據(jù)檢測到的事件生成不同的移動對象,例如星星生成和慶祝顯示序列。

如果1506處的檢查表明系統(tǒng)不處于事件拍攝模式,則進行正常游戲處理Mario和其他對象的移動(1508, 1512)。因此,根據(jù)1508, 1512處的處理,正常游戲玩法控制Mario和敵人的移動。

在1512中進行對象處理后,程序進入到一個改變相機模式的操作序列。首先,在步驟S1516中搜索Mario的狀態(tài)以確定Mario是否處于跳躍、游泳、飛行等狀態(tài)。有三個基本條件決定了改變相機模式:(1)Mario的狀態(tài);(2)需要改變相機模式的Mario位置;(3)地形或地面條件,由Mario腳下位置檢測到的地形信息決定。

回到塊1516,搜索確定Mario的當前狀態(tài)后,檢查塊1518確定是否需要更改相機模式。與角色Mario相關聯(lián)的是一個存儲的指示,表示物體當前的狀態(tài),例如,跑步10,飛行13等。根據(jù)檢測到的Mario的狀態(tài),確定這樣的狀態(tài)是否需要改變相機模式。例如,如果Mario正在游泳,相機模式會切換以優(yōu)化水域地形的視圖。如果塊1518處的檢查表明由于Mario的狀態(tài)需要更改相機模式,則相應地更改相機模式(1520)。

在1520處更改相機模式后,或者如果根據(jù)1518處的判斷不需要更改相機模式,則搜索Mario的顯示位置。與角色Mario相關聯(lián)的是一個存儲的指示,表示他在當前顯示幀中的坐標位置。基于對Mario在顯示屏上位置的檢查,如下面將進一步解釋的那樣,確定Mario當前位置是否表明應該更改相機模式(1524)。如果當前位置檢查表明應該更改相機模式,則如塊1526所示,更改相機模式。參見圖25A-C、26A和26B以及下面給出的相關相機模式描述。

然后游戲程序開始搜索與Mario關聯(lián)的地圖代碼(1528)。地圖代碼指示與Mario腳下相關聯(lián)的當前地形,例如,表示Mario是否在滑坡上或在水下等。然后進行檢查以確定當前地圖代碼是否需要更改相機模式(1530)。如果當前地圖代碼檢查表明需要更改相機模式,則啟動此類更改(1532)。

轉到圖22,在確定是否正在進行預定重要游戲事件(1534)。如果確定已經(jīng)發(fā)生了預定重要事件,則將模式切換到事件模式(1536)。如果沒有檢測到已經(jīng)發(fā)生預定重要事件,則例程分支到塊1538,在那里檢查例程是否處于事件拍攝模式。如果相機模式處于事件拍攝模式,則啟動事件的相機處理(1542),并且例程分支到塊1562,在那里根據(jù)預定事件顯示Mario和其他對象。

如果塊1538處的檢查表明例程不處于事件拍攝模式,則在塊1540處進行檢查以確定當前相機模式是否處于主觀模式。如果相機模式處于主觀模式,則如前所述,修改相機拍攝方向為從Mario的個人視角(1544)。在主觀模式中,操縱控制器操縱桿會導致轉動Mario的頭部,并相應地改變拍攝方向(1546)。在塊1548處進行檢查以確定主觀模式是否結束。如果是這樣,結束主觀模式,關閉主觀模式標志,并繼續(xù)處理顯示Mario和其他對象(1562)。

如果塊1540處的檢查表明當前的相機模式不是主觀模式,那么進行檢查以確定控制器上的C按鈕是否被按下。如前所述,控制器C按鈕在圖6中顯示為按鈕404 C-F。如果按下了一個C按鈕,那么在塊1554處進行檢查以確定是否需要切換到主觀模式。如果C按鈕的壓下表明應該切換到主觀模式,那么就啟動這樣的切換(1558),并且例程根據(jù)當前活動的相機模式在1562處顯示Mario和其他對象。如果根據(jù)塊1554處的檢查沒有改變到主觀模式,那么根據(jù)按下的特定“C”按鈕改變相機的方向和表面物理位置(1556)。在完成了改變到新相機視角的相機處理后(1560),根據(jù)新視點顯示Mario和其他對象(1562)。按下特定C按鈕會修改相機和Mario之間的表面距離和/或角度關系。

在塊1560中進行相機處理后,并根據(jù)本文中描述的各種相機模式,根據(jù)特定相機模式顯示Mario和其他對象,例程分支回到圖21中的塊1502進行正常游戲程序處理,并且相機模式處理繼續(xù)按照前述方法進行。

在正常相機處理中,如塊1560所示,視頻游戲系統(tǒng)被編程生成九種相機模式模式,其中程序控制從一種模式切換到另一種模式取決于在三維世界目標中檢測到的Mario的條件或位置。雖然下面描述了九種相機位置模式或模式,但應該理解,給出相機位置模式數(shù)量只是作為一個例子,并不應被理解為以任何方式限制。圖23A-23E視覺描繪了根據(jù)本方法的九種相機位置模式中的五種。當玩家處于如圖26A和26B所示的目標位置時,這些各種模式會自動調用。應該理解,相機的描繪表示在創(chuàng)建特定相機位置模式的顯示幀時用于處理計算的顯示三維世界中的視點。在特定模式中,通過按下圖6中顯示的控制器上的C按鈕,玩家可以進一步修改相機視角,如下面所述。例如,圖23A描繪了相機模式圖案1(稱為塔攝像機模式),其中帶圈“M”表示Mario,其移動由圖23A中的虛線表示。從第一個指示位置到第二個指示位置,隨著Mario的移動,表面相機視角發(fā)生變化,第一和第二位置的視線在標識的原點處交叉。當Mario位于圖23A中箭頭指示的點時,如果按下左C按鈕,則相機向Mario中心左側旋轉60度。同樣,如果按下右C按鈕,則相機向Mario中心右側旋轉60度。如果按下C向上按鈕,則相機靠近Mario;如果按下C向下按鈕,則相機離開Mario。

如果塊1540處的檢查表明當前的相機模式不是主觀模式,則進行檢查以確定控制器上是否有任何C按鈕被按下。如前所述,在圖6中顯示為按鈕404 C-F的控制器C按鈕。如果有一個C按鈕被按下,則在塊1554處進行檢查以確定是否需要切換到主觀模式。如果C按鈕壓下表示應該切換到主觀模式,則啟動這樣一個更改(1558),并且例程根據(jù)當前活動的攝像頭模式在1562處顯示Mario和其他對象。如果在塊1554處的檢查表明沒有切換到主觀模式,則根據(jù)按下的特定“C”按鈕改變相機的方向和表面物理位置(1556)。在完成了改變到新相機視角的相機處理后(1560),根據(jù)新視點顯示Mario和其他對象(1562)。按下特定C按鈕會修改相機和Mario之間的表面距離和/或角度關系。

在塊1560中進行相機處理后,并根據(jù)本文中描述的各種相機模式,根據(jù)特定相機模式顯示Mario和其他對象,例程分支回到圖21中的塊1502進行正常游戲程序處理,并且相機模式處理繼續(xù)按照前述方法進行。

在正常相機處理中,如塊1560所示,視頻游戲系統(tǒng)被編程生成九種相機模式模式,其中程序控制從一種模式切換到另一種模式取決于在三維世界目標中檢測到的Mario的條件或位置。雖然下面描述了九種相機位置模式或模式,但應該理解,給出相機位置模式數(shù)量只是作為一個例子,并不應被理解為以任何方式限制。圖23A-23E視覺描繪了根據(jù)本方法的九種相機位置模式中的五種。當玩家處于如圖26A和26B所示的目標位置時,這些各種模式會自動調用。應該理解,相機的描繪表示在創(chuàng)建特定相機位置模式的顯示幀時用于處理計算的顯示三維世界中的視點。在特定模式中,通過按下圖6中顯示的控制器上的C按鈕,玩家可以進一步修改相機視角,如下面所述。例如,圖23A描繪了相機模式圖案1(稱為塔攝像機模式),其中帶圈“M”表示Mario,其移動由圖23A中的虛線表示。從第一個指示位置到第二個指示位置,隨著Mario的移動,表面相機視角發(fā)生變化,第一和第二位置的視線在標識的原點處交叉。當Mario位于圖23A中箭頭指示的點時,如果按下左C按鈕,則相機向Mario中心左側旋轉60度。同樣,如果按下右C按鈕,則相機向Mario中心右側旋轉60度。如果按下C向上按鈕,則相機靠近Mario;如果按下C向下按鈕,則相機離開Mario。

圖23B顯示了第二種相機模式(相機模式2),稱為地牢相機模式。在這種模式下,當被控制的角色,例如Mario,移動時,顯示的相機視圖似乎在追逐Mario。如果Mario超過相機的固定距離,相機會移動以跟隨Mario。如果沒有使用操縱桿控制Mario,相機視圖似乎會自動環(huán)繞到Mario的后面。在圖23B中,帶箭頭的實線表示Mario的運動軌跡,虛線表示相機的軌跡,“小1”表示相機和Mario之間的最大距離。相機模式3是滑動相機模式,其中相機始終位于Mario的后面。在這種模式下,Mario只能向一個方向行進,通常不能反向行進。

相機模式4被稱為“平行跟蹤”模式,如圖23C所示,相機始終與目標平行移動。當Mario深入目標時,相機會平行追逐Mario。如果Mario超過了與相機的固定距離,那么相機就會移動以跟隨Mario。如果沒有使用操縱桿控制Mario,那么相機視圖似乎會自動環(huán)繞到Mario的后面。在圖23B中,帶箭頭的實線表示Mario的運動軌跡,虛線表示相機的軌跡,“小1”表示相機和Mario之間的最大距離。相機模式3是滑動相機模式,在這種模式下,相機始終位于Mario的后面。在這種模式下,Mario只能向一個方向行進,通常不能反向行進。

相機模式4被稱為“平行跟蹤”模式,并且如圖23C所示,相機始終與目標平行移動。當Mario深入目標時,相機以與目標平行的方式追逐Mario。如果檢測到Mario正在穿越狹窄的橋梁,則可能會切換到平行跟蹤相機模式4。

圖23D中顯示的相機模式5被稱為“固定”相機模式。在這種模式下,相機移動到指示原點和Mario之間的中點。固定攝像頭模式提供了更廣角的目標視圖,以確保玩家控制的角色不會從場景中丟失。

相機模式6是水下攝像頭模式。這種模式類似于上述描述的地牢模式即攝像頭模式2。然而,當馬里奧游泳上升時,攝像頭向上看馬里奧;當馬里奧游泳下沉時,攝像頭向下看馬里奧。在水下攝像頭模式下,當馬里奧停止時,攝像頭自動環(huán)繞到馬里奧的后面。

攝像頭模式7被稱為VS攝像頭模式。這種模式與圖23C中顯示的平行攝像頭跟蹤模式4是一樣的。然而,當兩個角色分開時,攝像頭從兩個角色身上拉開以在屏幕上顯示它們。當兩個角色接近時,攝像頭靠近它們。

圖23E中顯示的攝像頭模式8被稱為反塔攝像頭模式。這種模式原則上類似于塔攝像頭模式1。如圖23E所示,攝像頭和馬里奧之間的距離保持固定距離L。第九種攝像頭模式被稱為飛行攝像頭模式。這種模式類似于水下攝像頭模式6。

圖26A和B描繪了兩個顯示屏的部分,并顯示了根據(jù)馬里奧檢測到的位置將切換的關聯(lián)攝像頭模式。例如,如果檢測到Mario在塔頂,如圖26A中的“1”所示,那么就生成塔攝像頭模式視角。如果檢測到Mario在表示狹窄巖架的多邊形上,那么就切換到平行跟蹤攝像頭模式4,如圖26A所示。如果Mario在空中飛行,那么就切換到飛行攝像頭模式9。

在每種模式1-9中,如上所述,玩家可以通過按下C按鈕在主觀模式和客觀模式之間切換視點。隨著目標的變化,模式也會切換。例如,當Mario通過一扇門,或者跳入水中,模式會自動切換。圖24A和24B是一個流程圖,表示如何根據(jù)檢測到的Mario的條件,或者檢測到Mario處于特定情況下,自動控制相機模式的更改。相機模式更改例程開始檢查Mario的條件或情況是否需要相機模式1。如果是這樣,相機處理自動切換到從相機模式1的視角生成顯示。完成相機模式1處理后,例程分支回到調用例程。如果Mario的條件不需要相機模式1,那么進行檢查以確定Mario的條件是否需要相機模式2。如果是這樣,那么例程按照上述方式生成符合相機模式2的顯示。對于每種相機模式都重復這個過程。每次檢查時,例程確定Mario的條件是否需要九種相機模式中的一種,這些檢查反復進行。因此,根據(jù)圖24處理,在檢測到用戶已經(jīng)控制Mario處于水下情況時,相機模式自動控制以產(chǎn)生相機模式4操作。

關于圖24A和24B,是否需要根據(jù)Mario的條件切換到特定的相機模式是通過監(jiān)視存儲的Mario的條件或狀態(tài),并確定這樣的存儲條件或狀態(tài)是否表示啟動九種相機模式中的一種所需的條件或狀態(tài)來確定的。如與圖21一起解釋的那樣,關于Mario狀態(tài)和地形的存儲信息被用來控制切換到一個自動相機模式。特定應用程序可能會選擇用于切換到特定模式的精確條件。此外,在自動程序控制相機模式視角之上,用戶有靈活性通過按下圖6中顯示的四個C按鈕來改變相機視角,如上文與圖23A一起描述的那樣。

如上文詳細描述的那樣,在玩家控制和自動程序控制下都有各種各樣的相機視角選項可供選擇。圖23F-L舉例說明了玩家通過操作圖6中顯示的一個控制鍵來啟動改變相機視角可能生成的顯示。圖23F顯示了角色Mario位于三維場景的中心。通過按下箭頭指示對應于圖6中404F和404E的左右鍵,生成圖23H和23J中的顯示,以模擬圍繞Mario左右旋轉。如果操作404C和404D鍵(向上和向下箭頭鍵),則生成圖23I和23G中顯示的顯示,這些顯示模擬了攝像頭角度或視點似乎從Mario拉開或靠近Mario的效果。聚焦在圖23G上,如果從顯示出來的特寫視點操作操縱桿,則馬里奧頭部轉動,并且視點跟隨馬里奧視線移動,如圖23L和23K所示。通過“環(huán)顧四周”并以這種方式操縱馬里奧頭部,可以觀察到否則無法看到的物體以增強玩家實現(xiàn)目標的能力。

在游戲過程中,根據(jù)場景,相機模式會自動切換到最佳視圖,如上所述。如果玩家按下“R”按鈕,可能會切換到特殊的相機模式。在暫停處理描述期間,可以從暫停屏幕設置兩種可選的相機模式。在暫停屏幕上,玩家可以選擇兩種可選模式中的一種。通過按下“R”按鈕,玩家可以在這些相機模式之間切換。在這些模式下操作時,可以使用與圖23F-23L一起描述的相同控制。在本發(fā)明的一個實施例中,顯示Mario當前位置和相機之間的距離。如果玩家按住“R”按鈕以停止相機移動,相機位置將被固定,這在不希望相機跟隨Mario時非常有用。釋放“R”按鈕后,相機模式將恢復到正常狀態(tài)。

圖25A-C顯示了Mario穿越具有三種不同坡度的地形,即,相對于Mario的運動方向向上傾斜的地形、水平表面和相對于Mario的運動方向向下傾斜的地形。如圖25A-C所示,每個標識的地形都與Super Mario的腳接觸的多邊形相關聯(lián)。如果需要,這樣的多邊形可能具有關聯(lián)的期望相機模式指示器存儲。在這種情況下,當檢測到Mario處于這樣一個多邊形邊界地形上時,啟動一個相機模式切換,如前文與圖21一起描述的那樣。

本發(fā)明還利用了廣泛的角色控制和動畫技術來真實地顯示三維世界中的角色。圖6至9所示的玩家控制器允許用戶控制角色精確地執(zhí)行各種各樣的跳躍,如墻壁跳躍、長跳、三連跳、后翻等,并控制飛行、游泳、爬行和許多其他模擬動作。

圖27A和27B是流程圖,表示如何控制玩家控制角色,例如Mario。轉到圖27A,在電源啟動和初始化例程完成后,程序檢查是否操作了任何控制鍵/按鍵/開關或模擬操縱桿(1602)。如果沒有操作這些控制部件、鍵或開關,則在其當前位置顯示角色(1604),繼續(xù)其他游戲處理(1606),并將例程分支回到塊1602,在那里再次檢查鍵操作。如果確定已經(jīng)操作了控制鍵/開關/操縱桿,則檢測玩家控制角色及其在三維世界中的位置(1608)。根據(jù)在3D世界中檢測到的Mario的狀態(tài)和位置,決定Mario期望的下一個顯示位置和狀態(tài)(1610)。然后根據(jù)塊1604處的處理顯示處于期望狀態(tài)的Mario。

圖27B是一個狀態(tài)圖,示例了角色的下一個狀態(tài)是如何基于其當前狀態(tài)和特定控制機制的激活的。如圖27B所示,如果檢測到Mario處于靜止狀態(tài)(1618),并且按下“A”按鈕(圖6,404A),則控制Mario跳躍(1620)。如果在Mario著陸時再次按下A按鈕,那么就啟動第二次跳躍(1622,是1624),從而啟動一系列連續(xù)跳躍,如圖27C所示。如果在初始跳躍后按下Z按鈕(圖7,407),則控制Mario砸地(1626)。回到節(jié)點1618,如果在Mario靜止時按下Z按鈕,Mario被控制蹲下(1628)。然后如果按下A鍵,則控制后空翻,如圖27D所示。如果在檢測到Mario處于蹲姿時使用3D操縱桿,則控制Mario爬行或滑行,如圖27E所示。

回到節(jié)點1618,如果在Mario靜止時按下B按鈕(圖6,404B),則控制Mario抓住“敵人”(1634),如果旋轉3D操縱桿,則Mario搖擺敵人(1636),如圖27F所示。再次按下B按鈕,敵人被扔出去。3D操縱桿旋轉得越快,Mario扔出敵人的距離就越遠。

回到節(jié)點1618,如果在Mario靜止時操作3D操縱桿,則控制Mario跑步或走路,這將在下面進一步解釋。如果操縱桿轉180度,則控制U形轉彎(1640)。然后如果按下A按鈕,則通過傾斜控制桿使Mario沿著墻壁移動的方向來控制側身貼墻(1642),如圖27G所示。

本發(fā)明還考慮了許多其他控制技術,包括控制角色向操縱桿傾斜的方向游泳,并控制蛙泳和/或踢腿動作,如圖27H所示。當檢測到Mario的臉在水面上方時,通過按下A按鈕并向前拉動操縱桿,可以控制Mario看起來像是從水中跳出來。本發(fā)明還考慮了許多其他角色動作,包括通過向墻壁跳躍并通過按下A按鈕使角色在撞擊墻壁時再次跳躍來控制墻壁踢動作,如圖271所示。通過操作操縱桿然后連續(xù)按下Z按鈕蹲下并滑行以及按下A按鈕跳躍來控制長跳,如圖27J所示。跳躍的距離取決于角色被控制運行的速度。通過操作控制按鈕可以控制各種各樣的沖擊和踢動作,例如只有沖擊是通過按下B按鈕來控制的,如果反復按下B按鈕則可以控制踢動作,并且如果在跳躍時按下B按鈕則可以控制跳踢動作,這是通過擊打A按鈕來控制的。使用A和Z按鈕可以使角色被控制砸地,并且通過按下Z按鈕蹲下然后在蹲下時按B按鈕可以控制絆倒操作。通過使用操縱桿然后使用Z和B按鈕可以控制滑行踢,并且通過使用操縱桿然后使用B按鈕可以控制滑行。

圖28A和28B是一個流程圖,顯示了如何根據(jù)操縱桿操作和Mario正在穿越的表面的斜度來控制顯示的角色(例如,Mario)的速度。如圖28A所示,游戲開始后,顯示一個角色,例如Mario,在顯示屏上(1675,1677)。然后進行檢查以確定是否已經(jīng)移動了圖6中的控制器操縱桿的原點位置(1679)。如果沒有,則例程反復檢查操縱桿位置的變化。如何檢測圖8中操縱桿的角度旋轉,在申請人的受讓人的正在審查的PCT申請序列號PCT/JP96/02726(FNP-225)中披露,該申請題為“三維圖像處理系統(tǒng)”,于1996年9月20日提交,該申請在此通過引用并入。

如果操縱桿位置已經(jīng)改變,則在塊1681處進行檢查以確定改變的量是否大于預定量X。圖28C顯示了一個示例性的三種狀態(tài),這些狀態(tài)是根據(jù)操縱桿角度旋轉的量來顯示的:1)行走動作,2)低速跑步動作,3)高速跑步動作。關于圖28C中顯示的x軸,操縱桿改變量為零表示沒有從其原點位置操作操縱桿。圖6中的操縱桿允許的最大角度旋轉已被賦予32個單位的值。因此,在圖28C中表示了從無變化(零)到最大角度旋轉(32)的32個角度旋轉單位。

當Mario正在加速時,如果操縱桿改變量為8個單位或更少,則顯示Mario正在行走。如果操縱桿改變量在9到22之間,則顯示Mario以低速跑步,如果操縱桿改變量超過23,則顯示Mario以高速跑步。在減速模式下,如果操縱桿改變量大于或等于18,則顯示Mario以高速跑步。如果減速模式下的操縱桿改變量在5到17個單位之間,則顯示Mario以低速跑步,如果操縱桿改變量小于4,則顯示Mario正在行走。通過包括加速和減速模式對于上述三種Mario狀態(tài)和操縱桿改變量之間的不同關系,可以生成更自然真實的動畫屏幕效果。

回到圖28A,如果檢測到的改變量(1681)高于上述圖28C中指示的值,則顯示Mario正在跑步(1683),如果該值低于預定值,則顯示Mario正在行走(1685)。根據(jù)塊1687處處理控制Mario的速度。雖然在圖28中的流程圖中沒有明確指出,但是跑步控制最好基于圖28C中描繪的多種速度跑步模式。因此,可以利用操縱桿機制作為控制雙重功能,例如,不僅定義角色要移動的向量,而且定義沿著這樣的向量進行物體運動的速度。

如上所述,在塊1687處,根據(jù)檢測到的操縱桿改變量確定Mario的移動速度。Mario的移動速度S1是通過將檢測到的操縱桿改變量的平方乘以一個預定的最大速度來確定的,例如,可以是每幀32厘米。在當前的示例實施例中,一厘米等于一個像素或點。然后在塊1689處進行檢查以確定Mario的前一幀速度是否等于期望的當前速度。如果是,則速度保持不變,并且例程分支到圖28B,塊1697。

如果不是,則在塊1691處進行檢查以確定前一幀速度是否大于當前速度,以確定是要進行加速還是減速。這個判斷是基于操縱桿的傾斜角度來做出的。如果前一幀速度大于期望的當前幀速度,則需要進行減速,否則需要進行加速。如果需要進行減速,則根據(jù)在1693處的處理,將當前速度設置為等于前一幀速度減去B。其中B等于2,這是一個減速因子。如果S1小于S,則根據(jù)在1695處的處理進行加速。根據(jù)在1695處的處理,將當前速度設置為等于前一幀速度加上一個加速因子A,其中A等于1.1-(S1÷43.0)。在1695或1693處進行加速或減速計算后,或者如果保持相同的速度,則繼續(xù)在1697處處理。

在圖28B,塊1697處進行檢查以確定Mario行走的路徑是否在任何傾斜表面上,如圖25A、C和圖26A所示。確定Mario是否在傾斜表面上是通過檢測Mario當前正在穿越哪個多邊形來部分確定的。每個多邊形,例如三角形,都包括多邊形數(shù)據(jù)ax+by+cz+d=0。每個多邊形都有例如參數(shù)a、b、c和d作為與其關聯(lián)的地形數(shù)據(jù)。例如,如果知道x和z的值,則可以計算y來找到位置的高度。上面標識的參數(shù)b等于傾斜角的余弦。參數(shù)a、b和c之間有關系,即a2 +b2 +c2 的平方根等于1。

如上所述,在塊1687處,根據(jù)檢測到的操縱桿改變量確定Mario的移動速度。Mario的移動速度S1是通過將檢測到的操縱桿改變量的平方乘以一個預定的最大速度來確定的,例如,可以是每幀32厘米。在當前的示例實施例中,一厘米等于一個像素或點。然后在塊1689處進行檢查以確定Mario的前一幀速度是否等于期望的當前速度。如果是,則速度保持不變,并且例程分支到圖28B,塊1697。

如果不是,則在塊1691處進行檢查以確定前一幀速度是否大于當前速度,以確定是要進行加速還是減速。這個判斷是基于操縱桿的傾斜角度來做出的。如果前一幀速度大于期望的當前幀速度,則需要進行減速,否則需要進行加速。如果需要進行減速,則根據(jù)在1693處的處理,將當前速度設置為等于前一幀速度減去B。其中B等于2,這是一個減速因子。如果S1小于S,則根據(jù)在1695處的處理進行加速。根據(jù)在1695處的處理,將當前速度設置為等于前一幀速度加上一個加速因子A,其中A等于1.1-(S1÷43.0)。在1695或1693處進行加速或減速計算后,或者如果保持相同的速度,則繼續(xù)在1697處處理。

在圖28B,塊1697處進行檢查以確定Mario行走的路徑是否在任何傾斜表面上,如圖25A、C和圖26A所示。確定Mario是否在傾斜表面上是通過檢測Mario當前正在穿越哪個多邊形來部分確定的。每個多邊形,例如三角形,都包括多邊形數(shù)據(jù)ax+by+cz+d=0。每個多邊形都有例如參數(shù)a、b、c和d作為與其關聯(lián)的地形數(shù)據(jù)。例如,如果知道x和z的值,則可以計算y來找到位置的高度。上面標識的參數(shù)b等于傾斜角的余弦。參數(shù)a、b和c之間有關系,即a2 +b2 +c2 的平方根等于1。

轉到圖29,游戲程序啟動并完成初始處理后,游戲開始并且程序檢測操縱桿的傾斜角度(1725,1727)。如前所述,根據(jù)操縱桿的傾斜角度,確定角色速度(1729)。然后在塊1731處進行檢查,以確定角色的速度是否處于第一級別,這表明沒有運動或以慢速行駛。如果Mario以預定的第一慢速移動,Mario將用預定數(shù)量的多邊形繪制,例如800(1732),并且其他游戲處理將繼續(xù)進行,因為該例程分支到塊1739。因此,在這種慢速下,角色以高分辨率繪制。

如果角色的移動速度高于預定的第一級別,則在1733處進行檢查,以確定Mario的速度是否以預定但適中的更高速度移動。如果Mario以預定的更高第二級速度移動,則角色將用減少的多邊形數(shù)量繪制,例如500,但是面部將用與繪制靜態(tài)或第一級速度時使用的相同數(shù)量的多邊形繪制。如果檢測到角色速度高于適中的預定第二級速度,則角色將用200個多邊形繪制,并且用于繪制面部的多邊形數(shù)量也會減少(1737)。在塊1732、1735或1737處繪制角色后,其他游戲處理將繼續(xù)進行(1739),并且例程分支回到檢測操縱桿傾斜步驟(1727)。

圖30是一個流程圖,說明了角色Mario如何響應環(huán)境條件。流程圖應被理解為僅說明了這個概念,并沒有詳盡地處理可能需要考慮的環(huán)境條件。環(huán)境條件處理例程開始時,檢測Mario是否處于跳躍動作中(1800, 1802)。

如果Mario正在跳躍,如塊1802處的檢查所確定,則根據(jù)已知的物理定律(包括重力定律)控制Mario的運動(1806)。然后在塊1808處進行檢查,以確定Mario是否處于向上風流中。如果檢測到Mario處于向上風流中,則控制Mario的運動使其被風流吹向風流方向(1810)。當受重力控制的運動等于向上吹動的風流力時,顯示出Mario似乎在漂浮。風處理完成后,例程分支回到主例程(1826)。

如果塊1802處的檢查顯示Mario沒有在跳躍,則進行檢查以確定Mario是否正在奔跑(1804)。如果Mario沒有奔跑,則例程分支回到主例程(1826)。如果檢測到Mario正在奔跑,則像前面描述的那樣控制Mario的速度(1812)。然后進行檢查以確定Mario是否從懸崖或任何其他預定有界表面上摔下來(1814)。如果Mario沒有從懸崖或其他有界表面上摔下來,在塊1816處進行檢查以確定是否有側風吹過。如果有側風吹過,則控制Mario的運動使其看起來像是被風適當?shù)赝苿樱?818),然后例程分支回到主例程(1826)。如果塊1816處的檢查顯示沒有側風吹過,則例程分支回到主例程(1826)。

如果在塊1814處的檢查顯示Mario確實從懸崖上掉下來,那么將進行檢查以確定Mario的速度是否小于每幀10像素。如果Mario的速度小于每幀10像素,那么將控制Mario,使他顯示為掛在懸崖上(1824)。如果Mario的速度等于或大于每幀10像素,那么將顯示Mario從懸崖上掉下來(1822)。Mario可以被描繪為奔跑的最快速度是每幀32個點或像素。在1818、1822或1824處的處理之后,例程分支回到主例程(1826)。

圖31是一個流程圖,說明了在跑步或角運動期間如何控制Mario的身體方向。在身體方向處理過程中,首先進行檢查以確定Mario是否正在奔跑(1840, 1842)。如果Mario沒有奔跑,那么就沒有模擬上半身運動。Mario的“上半身”被定義為腰部以上的身體部分。如果檢測到Mario正在奔跑,那么將對Mario進行動畫處理以模擬奔跑(1844)。在奔跑處理過程中,根據(jù)Mario的移動速度將Mario的上半身向前傾斜(1846)。檢測到Mario奔跑得越快,Mario的上半身就傾斜得越多。此后,進行檢查以確定Mario是否正在向右轉(1848)。如果檢測到Mario正在向右轉,則顯示Mario的上半身向右傾斜,傾斜程度基于Mario的旋轉速度(1852),然后例程分支回到主例程(1856)。在以上述方式對Mario進行奔跑動畫處理時,使用腰部矩陣、關節(jié)矩陣和上半身矩陣進行傾斜角度計算,以模擬真實的傾斜運動,這是Mario轉彎速度的函數(shù)。如果基于1848處的檢查發(fā)現(xiàn)Mario沒有向右轉,那么將進行檢查以確定Mario是否正在向左轉(1850)。如果Mario正在向左轉,則根據(jù)Mario的旋轉速度顯示Mario的上半身向左傾斜(1854),然后例程分支回到主例程(1856)。

圖32是一個流程圖,說明環(huán)境或時間對Mario的影響。當環(huán)境處理開始時,進行檢查以確定是否有任何玩家輸入到控制器(1875, 1877)。通過這種方式,確保了Mario處于靜態(tài)位置,并且沒有移動。如果玩家通過玩家控制器以任何方式控制了Mario,使得有運動發(fā)生,則例程分支到塊1905,并且回到主例程。

如果沒有輸入到控制器,則進行檢查以確定Mario的腿是否正在沉入沙地地形(1879)。如果塊1879處的檢查表明Mario正在沉入沙子中,則顯示出一個掙扎動畫序列中的Mario(1881),然后例程分支回到主例程。如果Mario的腿沒有沉入沙子中,則在1883處進行檢查以確定Mario是否處于充滿有毒氣體的環(huán)境中。如果是這樣,則顯示出一個咳嗽動畫序列中的Mario,并可能也產(chǎn)生音頻咳嗽聲音(1887)。

如果在塊1885處的檢查顯示Mario不在充滿氣體的環(huán)境中,那么將進行檢查以確定與Mario相關的功率因子是否小于3,從而表示Mario的能量水平相對較低。如果是這樣,那么將顯示出一個動畫序列中的Mario,表示他喘不過氣來并深深地呼吸。如果Mario的功率不小于3,那么將進行檢查以確定自Mario處于靜止位置以來是否已經(jīng)過去了時間T1或更長時間。如果沒有,那么將顯示Mario正在四處看(1895)。如果是這樣,將進行檢查以確定Mario是否在雪中(1893)。如果Mario在雪中,那么將顯示出一個動畫序列中的Mario,他正在揉搓雙手看起來很冷(1899)。如果Mario不在雪中,那么將進行檢查以確定自Mario停止以來是否已經(jīng)過去了時間T2或更長時間(1897),其中T2被設置為比T1更長的時間。如果時間小于T2,那么將顯示Mario坐著打盹(1901)。如果時間是T2或更長,那么將顯示出一個睡眠動畫序列中的Mario(1903)。在1901、1903、1899、1895、1891、1887或1881處的處理之后,環(huán)境/時間影響處理結束,并且例程分支回到主例程。

根據(jù)本發(fā)明的進一步實施例,使用控制器56(和此處描述的系統(tǒng))可以生成額外的獨特屏幕效果。圖33A中的圖形表示操作成員在坐標系統(tǒng)中的物理傾斜量。中心畫的圓表示操作員未操作它時操作成員45的位置(圖8操作成員451處于垂直于外殼的狀態(tài))。如果操作成員451向上傾斜,如操作員所見,則圓沿Y軸正方向移動,而如果操作451向下傾斜,則圓沿Y軸負方向移動。同樣,如果操作成員451向右傾斜,如操作員所見,則圓沿X軸正方向移動,而如果操作成員451向左傾斜,則圓沿Y軸負方向移動。

圖33B中的圖形顯示了一個示例性的視頻游戲顯示屏幕,在該屏幕上,通過將操作成員傾斜到前、后、左和右,使瞄準器上下左右移動,從而使瞄準器與敵人34對齊。云31、山32和建筑33是變化的背景圖像,敵人34是在屏幕上自由移動的對象。例如,如果敵人34如圖所示出現(xiàn)在屏幕的右上角,則操作員會將操作成員451向右和向前傾斜。當這樣做時,控制器56、X計數(shù)器444X(參見圖9)及其計數(shù)值增加。計數(shù)值數(shù)據(jù)被發(fā)送到視頻處理設備52。視頻處理設備52使用這些額外的計數(shù)值數(shù)據(jù)來改變瞄準器35的顯示位置。結果,瞄準器35和敵人34變得重疊。當它們重疊時,如果按下按鈕如按鈕404A等,則這樣的開關數(shù)據(jù)也像前述額外數(shù)量值數(shù)據(jù)一樣被發(fā)送到視頻處理設備52。結果,視頻處理設備52生成視頻信號,在屏幕上顯示導彈(未示出)等,并顯示敵人34被擊中。

接下來,我們將結合圖34A和34B解釋操作成員451移動(傾斜)偏離中心并重置的示例。當X計數(shù)器444X和Y計數(shù)器444Y在圖34左圖中實心圓所示的坐標位置被重置時,如果操作員從操作成員451上移開手,操作成員將返回到坐標中心位置(由虛線圓所示的位置)。在這種情況下,視頻顯示的變化使用圖34B來解釋。首先,當X計數(shù)器444X和Y計數(shù)器444Y被重置時,瞄準器35顯示在實心圓的位置,就像在圖33B的圖中一樣。這是因為X計數(shù)器444X和Y計數(shù)器444Y的計數(shù)值為0,這與初始值的計數(shù)值相同。接下來,當操作員從操作成員451上移開手并且操作成員451返回到坐標的中心位置時,X計數(shù)器444X增加并且其計數(shù)值增加,Y計數(shù)器444Y減少并且其計數(shù)值減少。這些計數(shù)值數(shù)據(jù)被發(fā)送到視頻處理設備52。視頻處理設備使用這些額外的計數(shù)值數(shù)據(jù)來改變瞄準器35的顯示位置(將其改變?yōu)樘摼€瞄準器35的位置)。

例如,當操作員預測敵人34將出現(xiàn)的位置是圖34右圖中虛線瞄準器35的位置時,會執(zhí)行這種重置。在這種情況下,操作員希望在敵人34出現(xiàn)的瞬間將瞄準器35與虛線瞄準器的位置對齊。然而,持續(xù)將瞄準器35保持在虛線瞄準器35的位置會妨礙游戲玩法,并且如果敵人34從意想不到的地方出現(xiàn),操作員可能無法應對。因此,使用上述重置功能使操作員能夠將瞄準器35對齊到其他位置。更具體地說,首先,使用實心瞄準器35作為參考,操作員傾斜操作成員451使得瞄準器35顯示在預期位置,即預測敵人34將出現(xiàn)的位置(虛線瞄準器35的位置)。此時,操作成員451的物理坐標位于圖34A圖中實心圓的位置。此時,操作員同時按下三個按鈕406L、406R和405。當這樣做時,X計數(shù)器444x和Y計數(shù)器444Y被重置,并且瞄準器35顯示在實心瞄準器35的位置。然后,操作員自由移動瞄準器35并等待敵人34出現(xiàn)。如果敵人34出現(xiàn)在虛線瞄準器35的位置,則操作員從操作成員451上移開手。當發(fā)生這種情況時,操作成員451返回到圖34B圖中虛線圈所示的物理坐標位置。當操作員精確地將瞄準器35與敵人34對齊并按下開關(例如按鈕404A等)時,在屏幕上顯示導彈(未示出)等,并擊中敵人34。

此外,如果像上述那樣執(zhí)行重置,則可以將操作成員451顯著地移動到右下方。例如,當操作員希望將操作成員451向右下方移動很遠時,這是有效的。

應該認識到,根據(jù)本發(fā)明,操縱桿45可以以多種不同的方式使用,無論是與方向開關403一起使用,還是作為玩家可利用的基本對象運動控制機制。因此,操縱桿45不僅可以被有利地用于移動對象,如上述示例中的瞄準器35,而且同時方向開關403也可以用于控制移動對象的運動。

通過使用控制器56,本發(fā)明所設想的特定移動對象控制可能性和由此產(chǎn)生的屏幕效果只有一部分已在上述詳細描述。例如,方向開關403也可以被玩家用來控制對象的運動,就像傳統(tǒng)的視頻游戲控制器一樣,同時,操縱桿機構45可以被玩家用來操縱在屏幕上飛來飛去的目標。例如,目標可以被控制在屏幕上的任何地方飛行,在任何角度飛行,速度變化很大。在駕駛游戲的背景下,操縱桿機構可以被用作加速器、剎車和轉向機構的組合。在這樣的游戲中,視頻處理設備52檢測操縱桿機構被操作的前后程度,以確定顯示的車輛加速或剎車的速度。例如,可以使用操縱桿45偏離左或右的量來確定車輛將怎樣急轉彎。

本發(fā)明上述描述的原點重置特性,在應用于使用上述并入申請Ser. No. 08/562,288中描述的系統(tǒng)生成的三維類型顯示時,可以在游戲中有利地用于改變“攝像機角度”,從而修改觀察場景的視點。例如,如果敵人朝著建筑物的一側飛出屏幕,那么可以使用操縱桿機構45來改變透視視圖,使得玩家實際上確定了場景觀察角度。因此,例如,如果敵人藏在建筑物后面并且從當前視點看不見,那么可以使用操縱桿機構45來改變原點位置以移動“攝像機角度”,使得即使角色沒有移動也能從側面看到建筑物。因此,即使敵人沒有直接看到玩家的角色,并且反之亦然,由于被建筑物阻擋,攝像機角度也可以改變,使得玩家既能看到敵人又能看到被控制的角色。

由于具有方向開關403和操縱桿機構45,玩家具有獨特的能力,即同時使用左手和右手移動對象和操作目標。因此,開關403可以用來移動角色,而操縱桿機構45可以用來將火力機構對準特定方向以允許正確對準射擊目標。

以上說明只是一個示例性實施例。例如,只要涉及到通過操作操作成員來改變視頻圖像的視頻處理,就可以將本申請中的發(fā)明應用于任何類型的視頻處理。

雖然已經(jīng)描述了與目前被認為是最實用和最優(yōu)選實施例相關聯(lián)的發(fā)明,但應理解發(fā)明并不限于公開的實施例,而是打算涵蓋包含在所附權利要求精神和范圍內(nèi)的各種修改和等效安排。


圖1是根據(jù)本發(fā)明的一個示例實施方式的視頻游戲系統(tǒng)的透視圖;

圖2是圖1中顯示的視頻游戲控制臺和游戲卡帶的方框圖;

圖3A、3B和3C是視頻游戲控制臺和卡帶的示例,更詳細的實現(xiàn),如圖2中的方框圖所示;

圖3A

圖3B

圖3C

圖4A-F顯示了使用本文所述系統(tǒng)可以實現(xiàn)的示例3D屏幕效果;

圖4A-B

圖4C-D

圖4E-F

圖5是圖2中顯示的外設接口的方框圖;

圖6是首選控制器頂部的外部透視圖;

圖7是圖6控制器底部的外部透視圖;

圖8是控制器操縱桿的示例實施方式的內(nèi)部結構;

圖9是圖6控制器的方框圖;

圖10是描述一個示例通用游戲程序流程和組織的流程圖;

圖11A是關于標題屏幕處理的流程圖;?

圖11B顯示了一個示例動畫對象和跟蹤對象的攝像機路徑顯現(xiàn)軌跡,與圖11A流程圖相關;

圖11C、D、E、F和G顯示了示例標題屏幕顯示;

圖12是描述涉及城堡外處理操作一般順序的流程圖;

圖13A和13B是一個流程圖和概念性圖表,用于解釋跟蹤玩家達成目標情況的操作序列;

圖14A描繪了涉及目標進步相關門開啟處理程序中涉及的事件序列;

圖14B示意性地演示了一個說明性和示例性的開啟城堡門并前進的標準;

圖15A和15B是描述城堡一樓處理的流程圖;

圖15A

圖15B

圖15C示意性地描繪了城堡布局,包括一樓、地下室、陽臺、二樓、三樓和城堡外的庭院;

圖15D顯示了一個示例目標入口相關屏幕顯示;

《超級馬力歐64》粘土模型,出自非官方攻略(圖片來自Nintendo Life網(wǎng)站)。有趣的是,開發(fā)團隊并未使用過這種藍圖,而是在開發(fā)過程中將一切創(chuàng)作出來。

圖16是一個流程圖,顯示了角色的目標入口方式對目標狀態(tài)的影響;

圖17是關于暫停模式處理的流程圖;

圖18是關于暫停模式攝像機處理的流程圖;

圖19A和19B顯示了改變攝像機視角相關處理;

圖19A

圖19B

圖20A-20H是用于解釋圖19A和19B處理的攝像機處理相關圖表;

圖20A-20B

圖20C

圖20D

圖20E

圖20F-20G

圖20H

圖21和22是描述攝像機模式處理的流程圖;

圖21

圖22

圖23A-23E描繪了示例攝像機模式;

圖23A

圖23B-C

圖23D-E

圖23F-L舉例說明了玩家通過激活其中一個圖6控制鍵來啟動改變攝像機視角可能生成的屏幕顯示效果;

圖23F-L

圖24A和24B是一個流程圖,指示如何根據(jù)檢測到的Mario的條件,或者在檢測到Mario處于特定情況時,自動控制改變攝像機模式;

圖24A

圖24B

圖25A-C顯示了一個玩家控制的角色在具有不同坡度的表面上;

圖25A-C

圖26A和B描繪了示例地形表面和相關攝像機模式;

圖26A

圖26B

《超級馬力歐64》粘土模型,出自非官方攻略(圖片來自Nintendo Life網(wǎng)站)。有趣的是,開發(fā)團隊并未使用過這種藍圖,而是在開發(fā)過程中將一切創(chuàng)作出來。
《超級馬力歐64》粘土模型,出自非官方攻略(圖片來自Nintendo Life網(wǎng)站)。有趣的是,開發(fā)團隊并未使用過這種藍圖,而是在開發(fā)過程中將一切創(chuàng)作出來。

圖27A和27B是流程圖,指示玩家控制的角色,例如Mario,是如何被控制的;

圖27C-27J顯示了各種示例玩家控制器啟動的動畫效果;

圖27E-27F

圖27G-27H

圖27I-27J

圖28A、28B和28C是流程圖和圖表,描述了控制顯示角色速度的例程;

圖28A

圖28B

圖28C

圖29是關于選擇用于生成角色的多邊形數(shù)量的流程圖;

圖30是一個流程圖,舉例說明了角色如何響應環(huán)境條件;

圖31是一個流程圖,指示如何在跑步或角度運動期間控制角色的身體方向;

圖32是一個流程圖,指示環(huán)境或時間對Mario的影響;

圖33A和33B是與控制器操縱桿在坐標系統(tǒng)中的物理傾斜量相關的圖表;

圖34A和34B舉例說明了與操縱桿重置相關的屏幕效果。


【任天堂】超級馬力歐64專利 US6139433(節(jié)選)的評論 (共 條)

分享到微博請遵守國家法律
威远县| 五台县| 邹城市| 阿图什市| 额济纳旗| 藁城市| 承德县| 陇南市| 林周县| 伊宁县| 特克斯县| 安顺市| 平泉县| 金堂县| 奇台县| 红河县| 怀柔区| 苗栗市| 于田县| 思茅市| 呼图壁县| 枣庄市| 扶沟县| 德江县| 霸州市| 竹溪县| 高台县| 达州市| 思茅市| 清涧县| 永昌县| 麦盖提县| 浦东新区| 樟树市| 南陵县| 临泉县| 松阳县| 磴口县| 阳春市| 吉安市| 黑龙江省|