GameDesign 板


LINE

作者:NDark 時間:201001 "容易被遺忘的遊戲設計模組"之一: FPS counter http://0rz.tw/61wWb FPS是frame per second的意思。最早從電視電影的製作與撥放來的。 意思是每秒撥了幾個畫格。有在轉錄影片的朋友應該比較熟悉, 台灣電視訊號的標準就是NTSC他的FPS就是29.97。每秒換了幾乎30張影像。 格數(長度)相同的影片,如果撥快一點, 影片(時間)長度就會比較快撥完。人物就像快轉一樣。 (因為播放速度與原始影像拍攝的速度不同) 在我講下去之前,請務必思考上面這段說明與下面的問題。避免跟不上。 所謂"撥快一點"到底是什麼變快了? 直接跳到遊戲。要怎麼實現我的遊戲的撥放速度符合電視的標準? 很簡單,1/30秒畫一張就好了。畫完就送給電視。 所以最Naive(這裡必須說明Naive是直接簡單的意思,不一定等同於笨)的做法就是 用一個鬧鈴(timer,比較正確的講法是計時器) 每跳1/30就叫我的遊戲工人 把目前的牆壁刷成新的畫面, 然後請電視訊號線的長官來拍照驗收,送件。 上面的這個方法問題在哪裡?很明顯。 假如我有時候工人畫的快,有時候工人畫的慢,畫完的時候才驗收(傳送) 這樣電視顯示的結果也會忽快忽慢。 萬一電視收件的時間跟郵局一樣有限制,貨到的時候郵局已經下班,那這個畫格就掉了。 (這是白作工,明明就有畫,可是被之後的新貨物蓋掉了) 延伸思考 假如我某一個畫格突然運算量大增,此畫格畫了1秒才畫完。 意思是當工人在努力工作的時候,鬧鈴響了29次。這時候電視這頭會發生什麼情況? 另一種方法大家其實都很清楚了, 我叫我的工人不停的工作,然後派一個工人拿著鬧鐘, 吩咐他:只要一聽到鬧鐘響馬上放下手邊工作去叫長官來。 管他這個畫格畫完沒。反正確保我有送件就好。 還沒畫完我還可以先拿上一個畫格的牆壁來墊一下檔。 甚至我在1/30秒內我工人畫了好幾次都不管,反正長官來有拍到最後的樣子。 (好像有點虐待勞工XD) 這問題事實上早已被解決,我為什麼要花了落落長來說明。 請一定要思考我一開始提到的問題:所謂"撥快一點"到底是什麼變快了? 延伸思考 為什麼某些遊戲要強調FPS是60? 明明電視的顯示頻率是30。(當然現在電視越來越好了,連240Hz的電視都有了) 某些神眼的玩家可以分辨出FPS 30的品質有間斷的感覺。 為什麼電影(30FPS)撥出的時候卻沒有這種感覺? 我要談FPS的原因是它比各位想像中都來得重要多了。 不只是在刷新畫格上。 繼續前段的某狀況,有時候工人工作的快,有時候工人工作的慢。 意思是開發時的測試機器與最終使用者執行的機器效能不同, 甚至同一台機器效能也是變動的。 而且這問題也許不能只透過上面提到的控制播放的FPS方法來解決。 拿拍電影來舉例說明: 某電影場景拍攝內容是:"有台車自左邊跑到右邊,差點撞到過馬路的人"(遊戲內容), 在台灣拍的時候用的是普通裕隆轎車(硬體)。這場戲拍了10秒(跑到)。 現在好萊屋想要重拍這場電影, 內容當然是相同的:一台車自左邊跑到右邊,差點撞到過馬路的人 但是因為好萊屋比較有錢,找來的是一台保時捷。 保時捷一開3秒就跑到了,人都還沒過馬路,司機還跟你搖搖手說他已經很客氣。 解決方法是把3秒的畫格播慢一點讓他10秒才播完? 可是這樣做的時候卻發現過馬路的人也變慢動作,風吹的垃圾也變慢了。 所以,如果只是想要把車變慢,正確的做法應該是告訴司機, 第一畫格的時候你要開到哪個位置,讓攝影機拍一下。 第二畫格的時候則是第二位置,讓攝影機拍一下。 第三畫格的時候則是第三位置,讓攝影機拍一下。 直到10*30=第三百個畫格的時候要停在終點,讓攝影機拍一下。 遊戲設計是在每個畫格中進行。因此這邊說明的重點是: "在每個畫格必須知道這一格的結束時要進行多少的工作量,不可以做超過或短少" 進一步說明, 當我們拍攝電影時用30Hz拍。播放時就用30Hz來播。 3D Artist 拉了一個1秒的踢腿動作,當踢到0.5秒時,就一定要踢到一半。 企劃說飛越全地圖100單位要飛10秒。那麼飛到1秒的時候,飛機應該正在10的位置。 因此飛機速度應該是10 / 1 sec => (10/30) / 1 frame = 0.3 / 1 frame 10 / 1 sec : 這是企劃知道的速度 0.3 / 1 frame : 這才是本畫格真正的速度(移動量) 而因為這個數值FPS:30是變動的。 每個畫格的真正移動/變動量,要到該畫格才能知道。 至此,FPS扮演的角色,大家都應該很清楚了。 實務面是, 在遊戲層的各個元件(不管是繪圖,移動,動畫)都要能取得目前FPS的資訊, 或是當此元件的機制需要這個資訊的時候,必須要從最外層一路傳進去。 延伸思考: 當FPS因為某些狀況變低的時候(譬如說每秒10個畫格), 除了跳/飛快一點之外還能做甚麼? 當FPS因為某些狀況變得極端低的時候(譬如說每秒不到1個畫格), 會不會有甚麼例外狀況要特別注意? -- "May the Balance be with U"(願平衡與你同在) 視窗介面遊戲設計教學( http://0rz.tw/V28It ),討論,分享。歡迎來信。 視窗程式設計(Windows CLR Form)遊戲架構設計(Game Application Framework) 遊戲工具設計(Game App. Tool Design ) 電腦圖學架構及研究(Computer Graphics)論文代讀(含投影片製作) --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.96.77.176
1F:推 silveriii:有看有推 01/23 12:39
2F:推 lightmaple:看完推一個 01/23 13:03
3F:推 LinaInverse:推~! 01/23 13:08
4F:推 Yshuan:請問這兩篇文章可以借轉嗎~? 01/23 15:22
5F:→ NDark:可.作者時間請一起.這邊有網頁版 http://wp.me/pBAPd-9z 01/23 15:27
※ 編輯: NDark 來自: 140.96.77.176 (01/23 17:06)
6F:推 Alaba:好! 01/24 01:32
7F:推 cloner:推~~ 01/24 06:30
8F:推 wangm4a1:推 01/24 09:16
9F:→ vonRundstedt:推 02/19 14:10
10F:推 Andyhsu:推~ 03/11 01:54







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP