遊戲開發與設計中的“3C”是指什麼?
3C,最早是由育碧(Ubisoft)公司提出的遊戲設計概念,其實就是指Character Camera Control(角色、相機、控制)三個單詞的縮寫,代表了大部分遊戲設計中三種最為基本的元素。在13年出版的經典啟蒙書籍——《通關!遊戲設計之道》這本書中,作者Scott又對其進行更為詳細瞭解釋和擴充。
3C的概念與理解
從字面上來看,我們可以這樣理解:
Character,表示一個或多個遊戲角色,玩家可以扮演該角色、也可以在遊戲中可以觀察該角色的行為。
Camera ,表示一個或多個攝像機,以此來輔助玩家觀察遊戲世界,增加玩家的體驗感和沉浸感。
Control,表示用一個或多個控制裝置,設定特定的互動規則來使玩家控制對應的角色。
▷▶《奧日與黑暗森林》控制Ori移動
進一步來看,三者還有很多細節上的內容需要分析和深入。
Character(角色),一般是遊戲中的主角,代表著玩家的物理容器,擁有著鮮明的形象特點(體型、剪影、配色、材質等)和行為方式(移動方式、戰鬥方式等),能夠以最為簡潔的表達向玩家提供遊戲的基本資訊。好的角色設計可以讓玩家相對容易的根據外觀、姓名、對話等來了解其有哪些能力、故事背景等等。
一個角色的誕生需要經過概念與背景設計、原畫設計、三維模型設計(3D遊戲)、動畫設計、技能設計、程式實現、測試反饋等多個流程,同時我們還要考慮是否允許玩家自定義角色形象、設計內容是否與遊戲背景衝突等。當然,遊戲中角色通常不止一個,比如RPG中需要多個角色(流程是相似的)來構建故事和衝突,主角團之間不同角色還可以通過互補來豐富遊戲的體驗,如果是多人競技遊戲,還需要注意不同Character設計的平衡性。
▷▶《古劍奇譚3》的主角設計稿
我在之前的文章《為什麼說“角色移動”看上去很簡單,卻需要極高的技術力與細節成本?》就提到,角色的移動與技能是遊戲中非常重要且複雜的設計環節,走路、游泳、飛行、跳躍、駕駛等行為之間的切換與銜接非常複雜,需要程式和策劃進行詳細的規劃與思考。
Camera(相機) ,用於展示玩家所看到的東西,決定了玩家觀察遊戲世界的方式。我們可以選擇第一人稱、第三人稱或者是俯視的上帝視角等。第一人稱的Camera可以有更強的代入感和沉浸感(常用於射擊遊戲、恐怖遊戲、解密遊戲等),但是一定程度上失去了對角色的形象展示而且容易讓部分玩家感到眩暈;第三人稱可以讓玩家更好的欣賞角色和遊戲世界(常見的RPG、ACT、格鬥遊戲),通過角色的代入也能很好融入到遊戲內部,是比較常見的方案;而對於RTS這種需要觀察多個角色的遊戲型別,我們通常會採用等軸鏡頭、俯視鏡頭來設定相機的模式。
拍攝本身其實就是一個充滿藝術設計的事兒,很多遊戲為了達到理想的效果,都會找專門的影視從業者來設計鏡頭的位置、切換方式等。不過,觀察視角的自由性是遊戲區別於其他影視藝術本身的重要一環,所以在大部分遊戲裡面我們都會盡可能的把攝像機的控制權交給玩家,只在一些需要展示特殊的藝術表現時才奪回控制權(過場動畫、處決的鏡頭等,有一些特殊情況會在後面提到)。
除了相機的切換,Camera還可以通過FOV變化(準鏡瞄準)、特效變化、後處理變化、震動變化(ACT戰鬥)等方式來給玩家提供更多的資訊和更豐富的體驗,而這些效果變化的具體數值和時機是需要我們不斷測試和優化的。
Control(控制),代表著輸入到響應的整個過程。控制首先要考慮的就是互動按鈕是否符合玩家習慣、人體工學。由於遊戲裝置經過幾十年的發展已經基本成型(手柄、鍵鼠為主,還有VR、街機等),而且大部分遊戲開發商只做遊戲軟體,所以很少需要我們去考慮硬體的設計。我們通常更關注的是按鈕的匹配規則(比如玩家下蹲肯定不能對應一個向上的按鈕),UI的互動方式(尤其是移動端現在面臨螢幕小、按鈕多的問題)等,這些通常會交給UX的同事去做設計。
其次,Control也涵蓋了“當玩家進行操作時如何將表現反饋給玩家”這一點,這時候他更像是一個銜接玩家行為與遊戲表現的抽象概念。具體來說,我們按下按鈕後,玩家有多少時間進行下一步的反應?遊戲中的角色的移動速度、鏡頭、UI、音效應該有怎樣的變化?變化規則應該通過什麼方式傳遞給玩家?這些內容與Character和Camera的設計是息息相關的。
概括來講,3C表達了從玩家的輸入到遊戲角色的響應再到這一幀的畫面如何被相機記錄下來的過程。我們在上手一個遊戲的時候,很快就能夠從3C的差異上對該遊戲進行分類和定義,比如他是第一人稱還是第三人稱,是ACT戰鬥還是射擊型別。從某種程度上說3C展示了一個遊戲最核心的體驗,指導玩家學習並上手,很多情況下與我們常提到的Gameplay可以認為是等價的。
在設計遊戲時候,我們可以簡單的將遊戲3C分為基礎3C和高階3C,基礎3C決定遊戲的基本操作和互動方式,比如玩家按鈕如何響應、角色的基本輪廓和特點、可以做哪些基本行為、我們的相機視角有哪些等。而高階3C是在基礎3C上的擴充,角色可以有變化的形象、更豐富的移動方式以及更多樣的鏡頭效果和反饋。比如,在戰神4和蝙蝠俠中,我們移動使用的是第三人稱的靠肩視角,角色屏佔比為1/4的基礎3C,可以給玩家營造角色魁梧、行為充滿力量的厚重感。而戰鬥中動態變化的鏡頭以及可以扔出的斧頭和勾爪則是屬於高階3C,這些加強了遊戲時的沉浸感和真實感,讓玩家被代入到角色的行為與故事之中。
當然,確實也存在一些遊戲並沒有完整的3C,甚至很多遊戲的誕生要要遠遠早於3C的概念。比如俄羅斯方塊以及消除類遊戲中並不存在所謂的“角色”,互動文字類遊戲也沒有所謂的“相機”。
不過這並不是說這套理論就沒有意義了,你也可以認為這些遊戲型別只是在一定程度上限制住了Character和Camera的設計。假如我們仍然以這套理論為指導,將俄羅斯方塊中的“方塊”視為角色,將貫穿整個遊戲的固定鏡頭視為相機,那麼是不是就可以進一步地設計出更豐富的“方塊角色”和更為豐富的“鏡頭”效果了?畢竟,任何理論都不是一成不變的。
還有一些遊戲,融合了多種型別的3C設計,鏡頭上既有第一人稱視角也有上帝視角,既能作為主角體驗遊戲世界也可以以獨特的第三人稱視角來觀察故事的發展。如果一款遊戲能將這些都完美的結合,那無疑會給玩家帶來前所未有的遊戲體驗。我個人比較喜歡的《艾迪芬奇的記憶》就是這樣一個充滿藝術魅力並融合了多種3C設計的佳作。
▷▶《艾迪芬奇的記憶》
程式3C
談完了遊戲設計的中3C,我們不妨再從程式的角度來認識一下他。簡單來說,每一款遊戲都需要將前面提到的內容抽象到程式碼層面,封裝好並交給策劃去進行設計和擴充。比如虛幻引擎裡面就內建了一個成熟的Gameplay系統,你可以看到Playercontroller、Cameramanager以及Character等等的C++類,這些類與前面提到的3C是非常相似的概念。遊戲中所有擁有移動、碰撞能力的物件都應該繼承自Character,響應按鈕事件的邏輯應該存放在Controller裡面,而攝像機的位置、特效、震動等邏輯都被封裝到了CameraManager裡面,這是Unreal多年來積累的一種物件導向的3C設計方案。
角色動畫這塊的系統非常複雜,所以需要被單獨抽離出來。在大部分引擎中,動畫一般是通過專門的動畫系統來驅動角色身上的蒙皮骨骼模型進行模擬。
3C涉及遊戲的核心繫統,其內容是與遊戲玩法高度相關的,所以不同的遊戲的3C都有所不同,而且很可能差異很大。比如常見的ARPG,設計層面上要有一個完整的故事和一個個性鮮明的角色,而程式上我們需要實現一個可玩的有打擊感的戰鬥系統(涉及到複雜的動畫系統、特效系統、鏡頭處理、音效、震動反饋、後處理等)、角色成長系統(數值計算)、移動系統(攀爬、游泳、飛行等)、定製的動畫以及分鏡系統等。而在其他的遊戲中,還可能有關卡生成系統(我的世界)、載具系統(極品飛車)、以及各種特殊的與遊戲規則高度相關的定製系統(文明)。這些系統深入起來並不容易,但是卻往往被大家所忽略。
拿FPS遊戲舉例,角色上我們需要考慮玩家的移動方式(包括行走、衝刺、翻越、爬行、死亡等狀態的切換與打斷,特殊狀態如何進行設計和處理等)、武器與技能的製作和使用(包括武器的切換方式、數值計算規則、武器結構的拆分與組裝等)、角色的第一人稱和第三人稱的模型效果(包括角色的形象設計與展示、如何在遊戲中自由切換一三人稱、第一人稱是否能看到下半身等)、角色的動畫表現(包括移動、互動、開火等行為以及各種道具的動畫);攝像機我們要考慮基本視角(第一人稱)、鏡頭的切換(支援哪些特殊視角、不同視角的切換規則、是否有ADS瞄準狀態)、鏡頭效果(包括螢幕後處理變化、後坐力震動效果設計);控制上根據不同的平臺要考慮不同的設計,比如按鍵的位置、大小、是否允許自定義按鍵,按鍵的響應規則和響應時間等等。總的來說,3C需要考慮的東西非常繁多且複雜。如果是網路遊戲,這個工作量可能還要擴大一半左右。
對於3C程式來說,確實存在一些相對通用的技術與功能,比如Gameplay框架、狀態機FSM/HFSM(比如邏輯狀態機用於銜接角色的行為表現),網路同步,動畫系統,移動系統等,但是由於國內遊戲行業的發展不夠成熟以及這些內容並不適用用所有遊戲,所以造成了很多Gameplay程式發展方向不明確的問題。此外,像一些其他技術如FOV分層渲染、描邊、物理破碎、音效、介面特效等實現雖然可能會交給渲染、音訊、UI等其他程式做,但3C程式理論上也要做到理解並負責將其整合到現有遊戲的系統內。
實際專案中,遊戲涉及到的技術很雜,很多時候不那麼好劃分,再加上專案的人力有限,3C程式也沒有必要給自己限制在某些技術範圍內,要根據個人發展以及專案情況適當瞭解和學習其他模組的知識,如渲染、物理、AI等內容。
總結
總的來說,高質量的3C是遊戲堅實的基礎,依據3C的理論我們可以從多個方向來思考並進一步豐富我們的遊戲內容,進而讓玩家處於一個專注且享受的“心流”狀態。對於3C程式而言,我們需要根據遊戲的型別搭建合適的3C框架,同時與策劃不斷的進行溝通和打磨,來構建一個更有魅力的遊戲世界並給予玩家一個更為完美的遊戲體驗。
來源:“遊戲開發那些事”公眾號
作者:Jerish
地址:https://mp.weixin.qq.com/s/M6BDf5-L7LneRNAuxg-LGg
相關文章
- 遊戲開發者的思考:什麼是遊戲設計的核心?遊戲開發遊戲設計
- 遊戲開發與設計遊戲開發
- 什麼是遊戲陪玩app原始碼開發的過度設計,如何避免?遊戲APP原始碼
- 遊戲開發工具的真正價值是什麼?遊戲開發
- 遊戲思考:什麼是好的掩體設計(cover)遊戲
- 手遊開發者談能從投幣街機遊戲的設計中學到什麼遊戲
- 遊戲設計師在開發中最容易犯下的錯誤/最容易忽略的地方是什麼?遊戲設計師
- 什麼是3C直連網路?什麼是3C精品專線網路?
- 開發者談遊戲設計中少即是多究竟是什麼含義遊戲設計
- 為什麼說遊戲設計是隱形的建築學?遊戲設計
- Google 是怎麼設計遊戲手柄的?Go遊戲
- etcd中的"IS LEARNER"是指什麼
- 遊戲是什麼?淺談遊戲設計基礎的祕招“心流理論”遊戲設計
- 遊戲思考:什麼是好的路線引導設計(Path Design)遊戲
- 為什麼遊戲與列車是天作之合?遊戲
- 與遊戲頻繁掛鉤的SCP是什麼?遊戲
- 什麼是NFT鏈遊開發?
- 什麼是Linux?Linux中dev指什麼?Linuxdev
- 十名遊戲開發者告訴你什麼是「手繪遊戲」遊戲開發
- 《新神》開發者:獨立遊戲開發是種什麼樣的體驗?遊戲開發
- 作為遊戲設計師,能從動森的設計中學到什麼?遊戲設計師
- 大模型中的token是指什麼?大模型
- 什麼樣的遊戲是好遊戲?— 從發問的動機聊起遊戲
- 遊戲機制設計:資源管理挑戰與遊戲中的AI設計遊戲AI
- 休閒遊戲廣告的設計與投放需要注意什麼遊戲
- 【程式設計師的遊戲開發之路】 遊戲架構程式設計師遊戲開發架構
- 遊戲開發—協議設計遊戲開發協議
- 遊戲的Draw Calls是什麼遊戲
- 開發者談遊戲設計中的整體協調與拼搭硬湊遊戲設計
- 中國的雲遊戲應該是什麼樣的?遊戲
- .NET的併發程式設計(TPL程式設計)是什麼?程式設計
- 機器學習能在遊戲開發中做什麼?機器學習遊戲開發
- 如何開發與設計一個爆款小遊戲遊戲
- 遊戲文件與遊戲設計遊戲設計
- 關於遊戲開發管線的設計與最佳化遊戲開發
- 遊戲中咆哮與嚎叫的設計要點遊戲
- 遊戲設計師可以從魔術中學到什麼?遊戲設計師
- 什麼是元宇宙鏈遊開發?元宇宙