TipsWorks丁成甲:《帕斯卡契約》的創作與美術表現
製作團隊是如何把一個擁有巨集大世界的動作遊戲搬到手機平臺的,從視覺設計到遊戲玩法又是如何貫徹統一的世界觀的?TipsWorks的總導演&美術總監丁成甲就此在近日的Unity線上技術大會分享了《帕斯卡契約》的創作流程與美術表現。
以下是分享實錄:
大家好,我是《帕斯卡契約》的總導演兼美術總監,負責專案裡的劇情框架,遊戲玩法還有美術表現。本期分享會我會以遊戲製作的角度來介紹一下《帕斯卡契約》的創作流程,展示一下在創作《帕斯卡契約》中,我們經歷了哪些階段,最後我會舉一些遊戲中的例子來解析一下游戲中的美術表現與優化。
專案初期
首先我要介紹一下我們專案,最早的時候是使用unity來製作的一款動作角色扮演專案,最開始我們用的是unity的5.6版本,後來到我們升級到unity 2018,從2016年開始研發,大概三年的研發週期。製作人員大概從第一年有10個人,一點一點擴大,到最後一年我們大概30個人,整個專案95%的資源都是自己產出的。
這是我們公司的一面牆,早期的時候我們會在牆上面去做很多的嘗試,當時我們沒有太多的方向,做了非常多的風格嘗試。
之後我在的地方出了一個這樣的小稿——一組黑暗中世紀題材的概念圖。當時工作室裡的每一個看了稿子的人都覺得非常有興趣,大家出乎意料的一致,覺得方向可以試一試。
確定了目標以後,我又繼續做了一些人設的細化,就有了現在的這張圖。
有劍士,有女巫,有貴族,《獵魔人》,《重甲騎士》。但是因為我們當時就10個人左右的人力,決定還是把體量控制的小一點,我們和商量了一下,做一款中世紀題材的動作對戰遊戲,可能是一個比較保險的方案。
然後為專案定初期目標,這階段我們覺得訂立的目標始終要量力而為,訂立一個可實際完成的體量,訂立一個可實現的玩法,而不是說我腦子裡有非常多、非常決戰的點子,但是實際製作的時候處處碰壁,結果你只能完成它的60%或者70%。所以我們考慮了很多,希望把製作體量控制在一個可掌控的範圍之內,這是我們當時做的一個初期的聯機對戰demo。
當時10個人花了一年,做了一個已經可以刷到手機上的聯機對戰模式,可以WiFi聯機,就像《榮耀戰魂》一樣的PVP。但當時遊戲性和畫面都沒有調得很好,遊戲內容略微有點單薄,所以我們決定加入一些PVE元素。
調整階段
我們接下來為 PVE模式出了一張場景設定,一個看起來有點詭異而破敗的村莊。為此我們開始思考遊戲的世界觀和簡單的一些故事。
我們做了一個所謂基地的PVE玩法,怪物不斷從遠方湧過來,玩家保護基地,需要不斷的擊殺怪物獲得能量,然後用能量強化自身,不斷的迎接下一波怪物。這個PVE玩法現在看起來非常簡單,但是對於當時的我們來說意義重大,因為我們終於得到了一個像樣的遊戲框架,而且玩起來確實也蠻有趣。這給了我們前期非常大的信心,想著以後還不如把這塊好好做一做。
有幸的是場景最後被儲存了下來,就是這個場景。這個場景現在是我們最終上線了以後,第一關海格姆的畫面,基本保留了原來那塊區域,然後在這個基礎上又繼續擴充套件了場景。這個時候我們目標就比較明確了,專案正式開始推動起來,就像滾雪球一樣越滾越大。
世界觀與玩法包裝
關於世界觀的包裝,我覺得我們有一些自己的想法,特別是做一款手遊,當遊戲受到了體量的限制,我們不能去做地圖很大的遊戲,不能讓玩家隨心所欲地去任何地方,否則玩家一定會想為什麼我去不了對面那座山,我過不了對面那條河。
我們一定要給玩家一個合理的解釋,讓玩家覺得這是一個合理存在的世界。所以我們的做法是在世界上當時加了一個設定,比如說這個世界失去了光明,只有在有光的地方才是人類正常可以活動的區域。
那麼世界就需要一種發光體,可以讓故事、劇情,還有整個世界聚焦,於是我設計了上圖所示的生物,它為世界帶來光明,人們依附他而活,構成了遊戲的世界觀。
相對應的,我們需要一個與世隔絕的被黑霧籠罩的世界。在這裡生活的人們的故事以及發掘這背後的祕密自然就成了劇情核心。我們建立的場景就應該是生活在這世界的人們的生態環境,同時也需要一個完整的故事鏈。主線劇情和主要人物一點一點地新增進來。然後,世界觀的設定得到不斷的完善,再回滾,在整個世界觀裡面不斷的回滾,關卡設計也在不斷的更新。最後得到了我們想要的故事體系和世界觀。
當世界觀設定好以後,我就希望世界中的一切體系,一些系統,包括玩法系統都是服務於世界觀的。所以當時設計了理智系統,這是一個絕望、失控的世界,每個人都有可能在崩潰的邊緣,主角也不例外。他看見的所有的瘋狂的事情,或者是這些瘋狂會燃燒他的理智,他時時刻刻都處在理性和非理性的邊緣。
在混亂的世界中,人物理智崩潰時會遇到什麼?看見什麼?是靈異的怪物,還是發狂的boss,背叛的隊友,這些都是通過遊戲的理智系統所表現出來的。但依舊處在一個統一的世界觀之下,所以這是一個完整的包裝,不是說把玩法還有美術,還有劇情全部拆開來處理。我們希望無時無刻的提醒玩家,你正處在一個瘋狂的世界中。
畫面設定與取巧。考慮到當時我們就這麼點人力,要想辦法去節省資源和減少工作量。世界都處在黑霧中,整個遊戲都處在濃霧中,光源微弱,看不清遠處,我們巧妙地利用了當時做的世界觀設定,遊戲的視距不用開的很高,也不需要製作一些非常繁瑣的細節,讓我們製作的實際體量小了很多。
角色製作
這是我們的一個主角團。其實在做最開始的角色設計的時候,考慮過很多,比如說手機螢幕比較小,人物佔比會比較小,所以在設計的時候會把比例稍微做的誇張一點,物件的厚度都做得比較敦實,沒有特別細小的設計,基本上以體塊為主,這樣的話哪怕東西縮小了,在螢幕上並不是很大,你還是能感受到它的體積感和體塊感。
上面這張圖是一個基本的角色製作流程,比如說從原畫到高模,再到一個材質的繪製。材質繪製流程上,我們是用painter來對材質進行一個寫實的繪製,基本上是用PBR的這套基本流程。手機記憶體非常寶貴,貼圖使用有限,我們主要還是把重點放在了材質的調節上。
這是用unity還原出來的一個實際效果。在做的時候我們基本上是一個全尺寸貼圖,最終會根據遊戲的記憶體來進行優化。
我們不會去專門去壓縮貼圖,像diffuse和Specular可能會看情況進行一些壓縮,主要是看記憶體的盈餘。我們深入的去研究了unity的標準材質,SubstancePainter和unity做了非常好的銜接,幾乎可以直接按照unity5的標準材質輸出。
最終我們用到的貼圖有三種,一種是Specular這種金屬度或者是粗糙度,基本上是在阿爾法通道里去調整,整體來說用的是一個比較省資源的做法。
這是另一個角色,貝妮塔。她的特色是攻擊別人的時候,同時可以吸收別人的生命,將其存在身上的血瓶裡。血瓶會根據她自身的攻擊,或者是對自身的回血上下浮動變化。
針對這個血瓶,我們是用Shader graph來實現效果。隨著人物的位移,你可以看到液體在裡面晃動,它基本上是可以保持水平面的一個移動。這個只是做到一半,最終實際效果要比這個好一點。
這是我們的一個小罐,主角團和boss我們基本上是使用了一個PBR的流程。由於主角或者是boss都是相對單數出現的,所以每個角色的材質球的數量控可以控制地比較準。我們大概是做了3~4個,分為武器、服裝、頭髮和皮膚基這幾個材質球。
而作為一款ACT遊戲,普通的怪物可能會是複數地,一個場景裡會出現很多,所以基礎底冰用的材質相對比較簡單。雖說如此,生產流程還是跟boss一樣,是用SubstancePainter裡面來匯出來的,只不過說是材質球用的是比較一個傳統的材質球,它的一些反射度或者什麼,基本上用的是一些反射環境球來模擬的。
帕斯卡契約裡有非常多的非人性boss,給動作添了很多麻煩,我們角色有300多根的骨骼,不過因為boss戰裡面只有主角和boss,所以還能接受。大型 boss戰我們使用的都是骨骼碰撞,會根據打擊點的部位做出IK的收集反饋。甚至還有一些,就是比如說這傢伙,他的沙漏是一個弱點收集判斷,而小怪基本上使用的是膠囊體碰撞,這就是剛才說過的一個場景裡,單個一個怪和很多很多怪,中間要做一個取捨。
場景製作
場景製作,這裡我會以阿達米亞的一個場景來解析一下它的製作流程。
從製作思路上來說,第一關結尾向玩家展現出了這麼一個世界觀——玩家知道頭頂的那個大月亮其實是一個我們遊戲裡的一個具像,在正對著你。
那這一關的目的就是讓玩家知道這是一個什麼樣的世界,場景設計的主題就是讓玩家始終能看到具像,確保整個遊玩過程中可以看到這個大傢伙就一直在身邊行走。
確立了劇本以後,我會先出這樣的一個概念設計圖傳達出大的思路方向,以及確立一些主要的特殊事件場景。因為當時第一關畫面有點陰暗,所以希望第二關可以明亮起來,但是又要有那種詭異孤寂的氣氛,所以思路明確了以後,就用unity的地形工具,以及簡單的一些石塊刷,快速出一個layout。這個主要是用來提供給策劃,讓他們明白整個關卡和氣氛還有大的一些結構。
關卡策劃在看了layout、概設以後,他可能大概就明白了,像阿達米亞這樣的一個場景,它是一個以懸崖為主題的場景,在接下來進入白盒階段的時候,就不會因為理解錯誤而走偏方向。
為什麼要做這一步?就是如果你直接讓關卡來搭,很有可能會導致氣氛、劇情還有一些美術不是能很好地結合在一起。所以一開始雖然是多做了一步,但是你只要傳達出一個概念或者給出一點元素後,對後期來說其實是會省很多問題的。
接下來我們交給關卡設計師進入白盒階段。這個階段就是不斷的完善回滾,把角色放進去,不斷的測試玩法、測試路線,待整個關卡驗證完成以後,才開始用美術資源逐步的代替白盒。
這是一個當時做的關卡的白盒測試,主要是用來測試路線和場景比例,即使是這樣,有時候還是會出現比例問題。白盒階段要搭場景,記得一定要搭得寬大一點,可能會看起來有點空,但是隨著中後期的話,你那些中景或者一些細節東西放進去以後,慢慢會變成一個比較舒適的比例。
我們在做帕斯卡的過程中,確實有好多次做白盒的時候感覺還行,但是小物件一新增後,幾乎沒有戰鬥空間,最後只能砍掉重來。所以這也是一個需要注意的點,希望大家引以為戒。
然後是場景的路線優化。在階段我會要求關卡,策劃同學特別注意,因為我們後面會用到剔除遮擋和視錐裁剪這兩個東西,所以我們前期規劃的時候一定要特別注意,在路線設計的時候,要多轉幾個彎或者進入室內,或者是你讓遠處的視野裡被一些巨大的物體遮擋住。
遊玩路線的規劃也會決定遊戲後期的優化是否方便,其主要是控制視野內的模型面數與Draw call。
作為手機遊戲,在前期規劃路線的時候,應該要考慮到各個方面,這就是剛才說的那個遮擋剔除。
比如說場景儘量減少出現一條又長又直的路,或者是視野範圍特別寬廣的地方,比如說像上圖示示的綠色的部分,即露出的遠景,其實運算量還是能接受的,更遠處的景其實已經被其他遠處的房子剔除掉了,基本上不會參與運算。如果真的你有特別大的需求,要做這種大視野的場景,一般會專門去定製,比如說你要做一個特別大的塔,從底層到高層也都可以看得特別清楚,那你可能只是底層這一段會做的比較精細一點,上面可能也就是透掉了,或者是做簡化處理。
然後是場景材質這一塊。場景材質我們基本上是用的Substance Designer來製作,場景的材質球數量控制是相對比較嚴格的,基本上30~50之間。
這也造成了一些問題,帕斯卡契約裡的場景材質重複過高。這就是兩邊的一個取捨了,你做的是大的場景、內容,要麼(壓榨)記憶體,要麼在視覺上做出一些妥協,比如用designer來做磚牆的材質。我覺得,designer的最大優勢是可以快速的用連線節點,根據需求快速修改,快速迭代,效率會非常高,做出來的東西你也可以根據一些實際的需要進行修改和加工,非常節省成本。尤其是當場景比較大,特別巨集大,需要很多材質、需要重複使用時,designer 製作材質它可以重新取樣,隨機生成一道符合美術風格的新的材質,大大節省了時間成本和人力成本。
我們專案中其實並沒有使用 unity的那套地表編輯器,主要是因為我們地表的場景有時候會達到3~4層,而且地表的面積相對也比較窄,用編輯器比較難處理,對後期優化也比較困難。不過是要看具體專案需求的。如果是專案比較開闊,地圖開闊或者平整的話, unity的地圖編輯器其實是相對非常成熟的。我們這裡其實是做了一個材質球,通過一張MASK貼圖來混合兩種地表紋理,用頂點色其實也是可以達到相同的目的。
燈光這一塊,場景製作的場景光照,整個遊戲其實是使用了實時燈光加烘培,加light Probe。實時燈光這一塊的話主要用在角色和怪物,還有場景裡的實時燈光,這三塊燈光其實是分開的。主要是為了方便調整場景的光線,整體場景用的是一盞mix燈,來提供整個場景的主光線,角色和怪物是用另一盞實時燈光來打整個人身上的明亮度和高光。
烘焙這一塊我們主要使用的是混合燈光進行烘焙,模式使用的是Shadow Mask。我們在用的時候有一個小小的問題,就是它暗部被覆蓋的面積比較大時,高光會被這張MASK貼圖蓋住,造成整個暗部比較平。
針對問題我們使用了兩種方法來解決,一種是在材質上,在場景的本身材質上給一個環境反射貼圖,讓材質在暗部時看起來也會有高光和立體度。
另一種是在一些非常特殊的情況下用的,在材質上模擬一個反向的光,就是讓我們的程式設計師在材質裡就寫了一盞反向光,它是一些比較特殊的情況在用的。再加上人物走進陰影裡的時候,自身會開啟一盞點光源,我們在一些山洞裡或者是洞穴裡,或者是一些黑暗的建築內部都會這樣處理。
烘焙的時候可能有些注意的點就是儘可能減少lighting map張數來控制整體的Draw Call。比如說像我們專案,用了很非常多的預製元件,就是Prefab那是相同的模型和相同的材質,但是由於你不會被分佈在兩張不同的lighting map上,那它的Draw Call其實是不會合並的。
這也就是有一個非常大的矛盾點,如果你lighting map使用得過多,那Draw Call可能會多,但是如果你使用得少的話,你就要控制住lighting map的尺寸,否則陰影會很模糊。所以lightingmap的UVS的分佈,一個是會造成陰影模糊,一個是會造成記憶體增加,這兩個是需要你在做專案的時候去進行一些取捨。
關於light Probe,主要我們是用來給一些動態物體附著光影,比如說角色、怪物還有一些可互動的機關,後來我們就發現場景裡有一些特別小的物件,其實用烘焙的效果不是很好。因為那個小物件本身UV就很小,你這張lighting map最後再一壓縮以後,那個UV會聚焦在幾個畫素點上,那個畫素點如果你沒有處理好的話可能就是黑片,但是如果完全不著色的話,這些物件在暗部和亮部的表現是完全一樣的,那就非常奇怪。物體在暗部的時候可能會表現有點亮,它在亮部的時候可能又表現得非常暗,所以我們後期就改為使用light Probe進行著色,因為物件本身比較小,你放在那裡,放在暗部裡,本身會著一個比較暗色的,其實也看不大出來,反而會比你烘焙的效果更好一點。
打光這塊,因為場景的重複度比較高,所以我們在製作的時候有一個概念,就是一定要用燈光來給玩家作為記憶點,這就造成了光對我們來說非常重要,使用相同的素材,要根據打光的不同,營造出不同的場景氣氛,這點是對我們來說在整個製作場景中的一個難點。
遊戲陰影這一塊是分為角色陰影、場景陰影,還有一些其他動態陰影。用我們投影的方法其實也是一個較為通用的做法了,用專門的投影相機,按照光照方向給場景、角色拍一個剪影,拍到RT貼圖上,再根據投影投射到地表上,這樣做的話可以無論再多的怪和角色,那隻產生一次Draw Call,超出主角的範圍又可以不會被渲染,而且你可以根據這張RT貼圖,這張RT貼圖的格式設定,你可以做一些處理,還可以加一些抗鋸齒什麼的。
場景陰影,我們基本上用的就是傳統的烘焙陰影,其他動態陰影,比如說像雲霧投射下來的這些陰影,基本上是用跟角色一樣的,是用RT貼圖來實現的。場景裡的物件動畫,像植被,還有飄著的旗子什麼的這些,我們基本上是用頂點動畫來完成的,相對來說比較省資源。除此之外,人走到草上把草壓彎是以人物座標與草的位置遠近,程式控制,頂點偏移來實現的。
視距這塊是如同前面所說,我們世界觀的時候設計的比較討巧,整個世界是處在黑霧之中,所以我們的這個遊戲風格開得非常強。如圖例所示,這幾個紅圈基本上幾乎都是霧氣了,你裡面其實都可以不要有細節了。
那我們只要留下大石頭的剪影,還有一些建築的剪影,其他基本上能關的都關了,這樣的話我們做起來其實就是把這些所有的物品進行分組,根據體量分組,越大的物體它的可視範圍越遠。例如一些建築剪影,或者一些造成整個場景的一些大石頭,越小的物體它的格式範圍越近,基本上參照這個規則,所有的物體會被分到不同的層裡,然後去給每一層去做一個可視範圍的設定,再加上LOD,這樣可以大大的減少消耗。
其實像我們這樣做了以後,LOD的工作量其實也不是很大。霧氣這一塊,霧氣分為體積霧、定製霧片和基礎霧。體積霧我們是用一些Shader模擬的,基本上就是傳統GodRays的那種效果,然後定製霧片是用渲染粒子實現的,基本上是我們整個遊戲裡面的定製霧片,基本上是放到地上的一些模擬流動的雲霧,靠近會消失,然後你用軟粒子也不會出現硬邊,一個比較方便的做法。
鏡頭調節這一塊,因為遊戲裡的敵兵種類體型跨度都非常大,針對不同的體型和怪物,我們去做了一套專門調節鏡頭的工具,可以說每一種怪物你鎖定他的時候都是專門獨立去調節的,你在這個過程中還會去考慮這個怪物它的攻擊方式。
比如說遠端法師它的攻擊拋物線比較高的話,我們鏡頭當時調的時候,距離和鏡頭的遠近都會拉得相對比較寬一點。
在製作角色面部表情和口型動畫上,我們簡單的為角色設定了22個面部骨骼點來實現遊戲中面部所需要的基礎動畫,口型和表情其實都是提前設定好的一段動畫片段,然後根據音訊呼叫這些片段。
對於Blend Tree這一塊,在3D遊戲中,不管是虛擬搖桿,還是實際的手柄搖桿,玩家在操控這些角色移動的時候,都可以朝任意方向來進行移動。例如我們當時在設計維奧拉的時候,為了拉開和另一個角色泰倫斯的區別,在鎖定目標以後的移動方式,我們大概設計了10種,前後左右、斜上斜下10個動畫片段來做融合,這就是當時維奧拉的一個Blend Tree。
除了一般的走路位移動畫之外,角色的攻擊動畫也佔據了非常大的一部分資源,其中攻擊和受擊的邏輯判斷非常重要,我們通過結合狀態機的引數制,自定義曲線取值,讓程式去分析當前的動畫邏輯狀態,實現角色在攻擊動作時的一個目標的判斷。
比如說武器判斷,根據預定的攻擊型別編號,然後去調取相應的攻擊碰撞盒來實現這些做法。另外像攻擊中是否可以轉向、攻擊碰撞開啟的時機,還有連段判斷等等,我們在專案製作中其實是花費了大量的時間來去調這些Curve的引數,這些調整的結果都直接影響了整個遊戲的手感,特別像動作遊戲,你這些手感的好壞其實都去拉這些曲線來實現。
我們整個遊戲可能有非常多的工夫是在不停的去調整這些曲線上,然後我們整個角色是用了全身的IK系統,包括人物瞄準、腳步IK,然後收集IK的,比如說現在看到的這張圖就是人物站在不同的地表上,腳部骨骼會做出一些變形。
關卡製作
我們在做關卡的時候,其實為敵兵制作了非常豐富的狀態機機制,製作了若干種休息動畫,隱藏的攻擊動畫,你會在整個遊戲中看到有的怪物它隱藏在角落,在這偷襲你,這些其實都是專門定製的,然後怪物都會有視覺和聽覺方向還有範圍。
比如說像這張圖裡黃色的圈,就是一個聽覺範圍,紅色的三角區是視覺範圍,如果怪物在沒有看見你的情況下,你慢走的話是不會驚醒他們的,但是如果你跑過去可能就會引發他們的攻擊。
關卡中是採用了動態載入的方式載入怪物的,載入場景時會把這些怪物預先放到記憶體裡,場景中放了很多點,然後又放了很多專門設定過的這種顯示盒,就是這種綠色的盒子,只有角色進入這個綠色的盒子範圍內的時候,綠盒子範圍內的怪物才會被動態載入,這樣的話可以比較穩妥的控制怪物的載入上線,而且也可以比較精確的控制,我想哪些怪顯示,哪些怪不用顯示。
過場動畫
最後談一談過場動畫。
一般是我跟編劇先聊,聊完,確定了大概的劇情,然後先出一個故事板,把腦子裡的想法一些畫面先具像化,加上策劃以及程式來一起推敲修改。這個階段主要是確定一些效果是否能實現,如果不行的話,那可能還要商量一個可行的方案,再不斷的繼續的去修改故事版。當故事板確定了以後,我們會在max裡面去做一個layout,這個主要是用來確認故事結構以及鏡頭的合理性。可以放一下給大家看一下。
我們會做一個這樣的效果,這個階段不會去加面部表情,加口型,而且會拿給配音去做參考,待他們把配音部分完成以後,那確認沒有任何問題,才會繼續新增表情和口型。
遊戲中有一些比較複雜的過場動畫,為了不佔用過多的記憶體資源,我們自定義了一套及時載入系統,在演出完成後也可以立即釋放出遊戲記憶體。
根據預設的攝像機,呼叫角色ID以及相應的過場動畫資源,比如說場景風格,一些燈光和一些音效等等。同時程式也可以通過程式碼來控制美術的表現。Unity的Timeline功能非常強大,早期的時候我們其實並沒有使用,是用笨的辦法,去實現遊戲裡的一些過場需求。Unity Timeline功能實現了以後,我們發現使用了以後確實非常棒,效率直線提升,而且我們結合了自身的專案,設計了一套狀態控制器,可以通過判斷當前操縱的角色,動態的呼叫相應的一些演出動畫。
另外在一些GamePlay狀態下的簡短動畫,也可以用一些簡單的一鏡到底的方式。那這一塊其實我們是有一個視訊專門放一下給大家看一下。
以上就是我為大家帶來的一個分享,其實想說的是我們其實本身並沒有用一些特別複雜的或者是自己自定義的一些功能,其實用的還是unity本身的強大的那些自身功能。可以說這些東西的怎麼使用,我們這個專案,或者是通過今天的分享會能給大家帶來一些思考。以上就是我為大家帶來的分享,謝謝。
相關文章
- TipsWorks與《帕斯卡契約》:從“不靠譜”到100萬
- 《帕斯卡契約》今日在App Store正式發售APP
- 《帕斯卡契約》:形神兼備,鋒芒畢露的移動「魂」遊戲遊戲
- 是什麼讓巨人、蘋果、心動選擇了《帕斯卡契約》蘋果
- 《帕斯卡契約》3月登陸PC平臺,去年11月銷量已破百萬
- 事件、契約設計與BDD事件
- 巨人網路《帕斯卡契約》上線 次世代手遊開發能力獲蘋果認證蘋果
- CyDesignation創作特展 團隊成員暢談遊戲美術設計心得遊戲
- 美顏技術的創新之路——美顏SDK的原理與應用探究
- 遊戲技術美術之<技術&美術>知識構成遊戲
- Dubbo中的統一契約是如何實現的?
- 美創科技與連越律所達成資料合規“法律+技術”戰略合作
- 美創科技與南京大資料安全技術有限公司達成戰略合作大資料
- WCF技術剖析之十八:訊息契約(Message Contract)和基於訊息契約的序列化
- 精彩預告 | 美創科技與您線上相約第十三屆中國資料庫技術大會資料庫
- 簡約之美:如何實現簡約設計
- 《Moss》首席美術分享:如何創作情感共鳴型虛擬角色
- 美鏈BEC合約漏洞技術分析
- Constract 契約自定義
- 成長與榮光 | 美創資料安全管理平臺DSM的心路歷程
- 美創科技與廣寬公司達成戰略合作,賦能“智慧廣州”
- 簽約獎金:IT世界的賣身契
- 遊戲美術管理的刀與劍遊戲
- 契約測試Pact實踐
- 騰訊光子專家談他的力量:改進流程工具促進遊戲美術高效創作遊戲
- 微信:全國復工大資料 美容美髮美甲行業“最旺大資料行業
- 美創與佳都達成戰略合作,智慧城市資料安全啟新篇
- WCF學習(四):資料契約的事件事件
- 努力一下,還是可以成為技術美術(TA)的
- 區塊鏈:「重回現在」的枷鎖與契機區塊鏈
- 美顏sdk是什麼?美顏sdk有哪些技術組成?
- 《十二神兵器》遊戲首曝 與命運中的使徒簽訂契約吧!遊戲
- 攜手並進!美創科技與佳都科技、偉仕佳傑簽約全國總代理
- 美甲門店如何生意翻倍?短影片本地生活平臺增大變現可能!
- 簽約!美創科技成為中國軟體評測中心資料安全產業生態戰略合作伙伴產業
- 契約鎖與多家軟體行業夥伴達成戰略合作,攜手助力組織數字化轉型行業
- 技術寫作例項解析 | 簡潔即是美
- 你需要知道這些關於技術美術的知識構成