創作內容

30 GP

【學習】SRP、一周專案和星艦求生

作者:樂小呈│2023-04-30 18:17:37│巴幣:2,499│人氣:393
三月都在忙寫作和期中,所以沒什麼時間做額外專案,課外學習的事情都是四月進行的。我還蠻喜歡新的寫作方式的,生活和學習交替的話我也更能提醒自己別玩到失控了,這次是課外學習篇。

遊戲燈塔
美術、企劃的部分,目前只有一些前導課程,聽老師介紹了許多基本的心態和知識。特別的部份是之前稍微提問過關於技美的問題,被提點了不少。「不要只會用一種方式解決問題」,這是老師的建議。雖然老師不知道我的狀況,但這建議還蠻剛好打中我的問題的。

我在研究什麼的時候,都是從有趣開始的,這沒什麼問題,但我總是點到為止,摸到一些東西就停了,雖然做出不少酷東西能展示,但實務上能應用的範圍其實很狹窄。總之,這是蠻值得反思的建議,我也在研究不同的學習方式中。

這段時間以來,除了技術以外,我也有花時間了解更多技美的知識。看了 Riot 的美術解說系列,期中一集就談到了技美。技美要涉略的範圍真的是超級廣的,圖形技術只不過是一小部份而已,還有個更重要的事情是「評斷什麼東西是真的需要的 」。

在實務上一昧的追求技術與造輪子可能讓自己陷入麻煩,這點我在工作初期就做的不是很好。使用(尋找)現成工具沒什麼不對的,最適當的解方有時是最樸實的,當初和前輩聊天時就收到了類似的經驗分享,現在我更深刻的了解了。

還有一位同學來問我關於技美的資訊(據說是被教授推薦的 XD),多虧入學前的短暫工作,加半個多學期下來在學校的觀察,有些看法就跟他聊了一下。

看系上的作品展示後,大概能懂為什麼之前(另一位)教授和我聊的時候會說學校教不出技美了。一方面是這個職位的特殊性可能讓學習過程很個人化,還會接觸到蠻深的技術知識,很難用一套模式批量教學。

不過我覺得更大原因是環境,以學校的程度來說,技美的許多技術知識都蠻超出需求的。可能厲害的同學有辦法開發工具給其他人用,但那對程式能力的要求也不低,只有少數人能在學校學到這種程度。最有可能的還是用連連看做些很酷的 Shader 效果吧,但那也需要對數學有一定程度的悟性才行。

我從一開始就不期待在學校學到更多技術了,就是去玩的,反倒是教育與溝通方面也是技美會要的技能,如果把握機會說不定可以累積不少經驗。所以前陣子也開始帶同學做遊戲,研究了一套教學繳本能從頭帶同學設計、研究風格、製作素材到完成簡單的雛型,下面會再分享。

總之,跟同學解釋的時候,我拿出之前看到的圖,裡面涵蓋了技美會接觸的各項知識。內圈是會接觸到的領域,中間是領域裡的各種知識,而外圈是這項專業的職位,也是你可能會交流的對象。聊到我也稍微自評了一下,紅色是我目前能做到的(但先不談水準),橘色是沒有實做過但應該能研究出來的。

灌了不少水也才接近兩成,實際上可能一成不到吧…學海無涯,回頭是岸阿。圖片出處是 Technical Artist Job: How To Prepare, What To Expect,裡面也詳細解說了技美的各項知識,有興趣的人可以看看。

程式
雖然他們從相當基礎開始(但速度很快),還是學到了有趣的東西,因為課程會出作業,而老師會設計一個單元測試的框架,只要你正確的函式就能通過測試,意外直接學到了 TDD (test driven development) 的概念。

原本還有報音樂課程,但評估覺得無法,決定放棄,繼續硬撐會讓我連其他三個都學不好 。可惜社群規範的關係,我不能講太多課程細節,有興趣的人請自行加入噢 :D

教學工作坊
這兩月最大的事情是月初的連假,我研究了一套教學腳本腳本,能從腦力激盪發想遊戲,速寫研究風格,到使用引擎內的工具完成素材,最後完成遊戲。總之,先邀請了兩位朋友幫我測試腳本,兩位美術,驗證這套教學方式的可行性。過程我不會有過多干涉,因此遊戲是全由他們的創意設計而成的。

發想階段
首先先讓他們尋找各種參考遊戲,電腦、手機動作和經典遊戲,然後再稍加分類後將遊戲的核心要素提取出來。為了更有戲劇性,我們還買了兩包便利貼來用,貼在房間的牆上 w

接著,使用一到兩個要素,組合出新的遊戲機制。我首先提供了範例,貪食蛇 + 打磚塊,一個用貪食蛇取代打磚塊的板子的遊戲,玩家要用身體反彈球體,但每次反彈可能會害自己被縮短,所以要吃點點變長,就像一般的貪食蛇一樣。

後續就交給他們發揮創意,想出了十種遊戲組合,還畫了簡單的示意圖,讓遊戲更有畫面感。

發散出一堆想法後,再深入之前得先進行基本的過濾才行,畢竟時間有限。我讓他們挑出了三個感覺最有趣的內容。接著針對各自選項做出提問,把設計中不確定的地方明確出來,讓遊戲開始有完整的樣子。

最後就是在討論決議,選出最終要使用的定。他們選了第三個,塔防的設計,也是其中最複雜的一個。老實說,這裡有點失策了,應該要介入才行,因為太複雜了,會讓工作量過高。設計完畢後就是分析工作,列出所有需要的物件和工作就告一段落了。

概念設計
接下來就是美術設計。首先要決定美術使用的風格,原本說自由畫幾種不同風格的東西,但被反應說這樣反而沒方向,會很花時間想。所以改成用主題的方式延伸,讓他們說了三種不同誒主題,古代與野獸、現代與殭屍、科幻與外星,然後從簡單的物件開始,每個風格速寫出許多草圖。

有了基礎草稿後後,就開始討論要使用的風格主題。最後決定使用科幻,但是把不少現代主題裡的東西合併了。

接著就是根據主題設計各種遊戲會需要的內容,更多敵人、物資、士兵與建築物等等。

素材製作
草圖都設計完畢後,接著將他們素材化,繪製成電子版的遊戲素材。這是他們第一次嘗試用像素畫,雖然畫布有點開太大了 ww

教他們怎麼製作遊戲動畫,有逐格的 SpriteSheet 作法。

還有用 Unity 內建的製作補間動畫,先把角色(或物件)拆成各種零件,再用 animation 組合起來。

遊戲特效
特效是一定要的,所以也教他們怎麼用 Particle System 製作遊戲特效。因為時間有限,所以沒有深入甚麼設計理論,只有提出一些粒子的使用時機給他們思考,東西出現、東西消失、物理現象和環境現象等等。

教了基本參數後,就讓他們自由發揮,做出敵人死亡和士兵死亡的特效。

布置場景
無論甚麼遊戲,都一定會有遊戲環境在,也教他們怎麼製作場景。先讓他們速寫了幾張場景概念藝術(這一步應該在前面做的),才半小時的時間就畫出四張草圖,不愧是美術。

場景有個狀要地方是尺度問題,只有物體的話很難看出他的大小,必須有其他參考能夠比對才行,所以也讓他們畫了幾張作為比例尺的圖,讓我們對物體大小有共識。

場景有個狀要地方是尺度問題,只有物體的話很難看出他的大小,必須有其他參考能夠比對才行,所以也讓他們畫了幾張作為比例尺的圖,讓我們對物體大小有共識。

草稿設計玩,接著就是素材化,一樣繪製成。

最後,讓他們製作 Prefab,把物件擺上場景,製作全域粒子特效和打光就完成了。原本樹木有顏色的,但編輯動畫的時候跑掉了 QQ

場景佈置的縮時

最後就是遊戲界面的設計,腳本上最空白的地方,因為我也不熟 UI 方面的知識。因為沒有企劃,當時思考了一下,決定先讓他們列出遊戲中會有的界面元素,找一些參考給他們看,然後讓他們速寫各種樣式的編排方法。

還蠻成功的其實,接著就是素材化,然後教他們 Unity UI 的製作方法。

最終成果如下。從零基礎開始,一週的教學挑戰到此為止,雖然蠻多規劃的東西沒有完成,但一開始就沒有要完成遊戲就是了(還有我的評估失誤),重要的是玩的開心,而且讓他們跑過一次完整流程,以及摸到遊戲美術會需要的各個工具。

連續的一週應該能讓我推進不少研究,但就像之前說過的,研究只要自己一個人就好,我以前做過了,而未來也有必須繼續進行,沒必要進入大學還花時間自己一人埋頭苦幹。我想做些只有現在、只有在這裡能做到的事,所以我決定將時間用來踏出自己的世界。

這周的研究蠻大成度的驗整了腳本的可行度,也找出不少規劃時沒預期到的漏洞,不過最重要的還是了解一些與人應對上的經驗,感謝兩位朋友直接點出我沒做好的部份,否則我這木頭可能永遠不會知道自己錯在哪。

實驗完畢後,中間有個短暫的空閒,稍微研究自己的東西後就開始第一梯次的活動了。有位蠻有潛力的程式朋友說有興趣,就優先讓他加入了,讓他找了兩位美術一起製作,不過這一梯才剛開始,所以就先不寫進這篇,畢竟篇幅也夠長了。

人培室
好久以前說過的人培室又出現了,當時隨口跟教授分享了一下我在搞的這個活動,結果被問要不要當課後程式教學的講師,然後就用神奇的身份加入了,欸嘿 (ゝ∀・)

預計會教三個簡單的設計模式,狀態、單例和工廠,還有怎麼整理程式碼、除錯和拆分功能。時間其實蠻少的,只有三堂課的時間(共六小時),也要花些時間研究新的腳本了,希望我能勝任這項工作。

這人培的教學也是五月才開始,生活篇可能會小提一下,但細節就跟工作坊教學一樣,要到下下月的學習篇了,敬請期待,我也很期待 XD

個人研究
因為上面那些事情,我從這學期開始也稍微放緩了個人的技術研究,四週年的文有稍微提過。畢竟,當我「選擇」將時間花在一件事情上,就代表有另外某件事的時間會受到壓縮,這是裡所當然的,我必須將時間用在少數最重要的事上,才能有最好的表現。

這學期唯一的空閒可能就在期中周了,為了在連假帶同學做遊戲,我很早就處裡完作業了,結果期中周反而空出讓我能做自己的事的時間,趁這空閒也摸了一下技術。

Sky Box Shader
之前聽說了用 Sky Box Shader 做出動態雲效果的技巧,所以也嘗試了一下。抓了一些免費的 Sky Box Asset 來實驗,嘗試使用 flow map 做出動態效果,意外弄出很像顏料亂塗的效果,還挺有趣的。

整個天空像嗑藥一樣嗨的效果,ㄉㄨㄞˉ

最後弄出簡單的邊緣滾動,沒很明顯,原本想嘗試比較大型的雲動畫,但失敗了。可能是素材的原因?也可能是我還沒想通原理,或許我應該自己畫簡單的素材來用會更貼和需求,但不管怎麼說,還是得點一些美術技能才行 D:

URP
之前花一些時間在學管線底層,讀了幾篇 Catlikecoding 的 SRP 基礎教學,但…那讀起來太硬了,而且筆記也不好寫,後來還是決定先研究實用向東西的可能更好(也更有趣),所以就摸了 Unity URP 裡蠻強的 Render Feature 功能,能用更簡單的方式擴展渲染管線。先來展示一些成果吧。

全域 SDF Culling
之前看到 Sakura Rabbit 大大的作品就很好奇裡面的轉場效果 "實時空間切換",可以用 SDF Culling 在兩個場景間轉換。

雖然不知道實際是的 code 長怎樣,不過我知道那不是光靠 Image Effect 達成的,而是 pixel clip,因為每個物件的 detph test 都有運作。不過我覺得不會是把 clip 寫在 "每一個" 物件的 Shader 裡,雖然這應該是最簡單的做法?

後來摸到 Shader Feature 就懂了,我可以先用 material overrite 渲染一次經過 SDF Culling 的物件當遮罩,渲染一次經過 SDF 效果的物件,然後留下 Depth Buffer 資料。

之後再讓物件用自己的材質渲染一次,但經過 Depth Test Equal,這樣就能把效果作用在所有物件上,同時讓他們用各自的 Shader 渲染了。但...缺點也很明顯就是了,這等於把整個場景渲染兩次 ¯\(ツ)

GPU instance
我也稍微研究了怎麼把 GPU Instance 搬到 RenderFeature 上,和原本的寫法大同小異。之後會有完整的 RenderFeature 筆記,草稿已經完成了,敬請期待。

Vertex Buffer
也是研究 Render Feature 延伸的,上面有弄出了全域 SDF Clip,而全域的 VertexShader 也是我一直以來很好奇的效果。一番折騰後總算找出利用 ComptueShader 修改模型頂點資料的方法了。

Unity 2021 之後可以透過 GetVertexBuffer() 取得模型在 GPU 中頂點資料的指標,能將它當作 ByteAddressBuffer 傳入 ComputeShader,細節先不談,總之這是一種儲存最原始 byte 資料的 buffer,理論上能用任何方法讀寫內容。

而在 Compute Shader 作用過後,Mesh 就會像經過 VertexShader 一樣有頂點的位移效果,但又兼具他們各自的渲染。如此一來就能做出全域的頂點效果,又讓物件用各自的方法渲染了。一樣之後會有獨立的筆記,總之,嚐嚐我的 降 維 打 擊!

學海拋光
教育部有個東西叫「數位遊戲開發人才赴日本頂尖專業企業拋光計畫」,內容就和名子一樣,是讓遊戲領域的學生用公費出國實習的計畫,也是大佬 %%鼠參加的實習計畫,我也報名ㄌ。一年級不能出國,只能參加報名流程的工作坊活動(類似 Game Jam,還有面試),原本想說先跑一次流程,之後正式來會比較熟悉。

但因為不是要出國的,所以要等全部審核完有多的名額才能參加,應該是有難度。而且我原本是衝著面試才想參加的,Game Jam 的部份其實興趣不大,但報完名才得知就算參加也沒辦法被面試,作品集也只有工作人員會看,怕公司混淆什麼的,哭阿。

總之再看吧,名額夠就去玩一下,還是有機會展示能力,不夠我就多出半個月的暑假能自由使用了,怎樣都沒損失。

信心&取捨
這陣子又間歇性的信心低谷,雖然一段時間就會恢復了,但剛好月底發病就順便說吧。

(對了,日誌內容的順序不是依照時間,是我覺得編排起來合適就放,這段實際上是最後才加的)

論 Unity 和遊戲程式的話,我有把握自己是學校裡程度頂尖的,但每次這樣想就會有個發自內心的譴責出現說「是又如何,難道你的標準就這樣嗎?」,然後告訴我離自己的目標還有多遠,夢想有多難實現。

時間好少,雖然已經避免浪費任何時間了,但我能做的還是很有限,過的越充實反而越深刻的意識到自己能做的事情有多麼少。我知道我提過好多次,但也是真的,每寫一篇我都有更深的感觸。實際上,下一篇日誌就又到學期的尾聲了。

取捨的重要性也更深刻的展示在眼前,我每想多做一件事,就得捨棄另一件事,才有足夠的時間和精力將其中之一做好。從入學前開始,我就開始捨棄各種東西,捨棄成為相當有潛力的專案的一員,還有繼續賺錢的機會,為了讓我全心投注在學校。

為了做以前無法達成的事,我也捨棄花在個人研究的時間,轉而研究遊戲開發的教學腳本,帶同學跑製作流程,和設計程式教學的教材,帶課後教學的同學們學習程式。當然我也知道,這一切都是對我有幫助的,我覺得在的我和入學時已經是完全不同的兩人了。

有時我忍不住去想,相同的時間,如果全部花在專業上能有多少進展。入學帶給我的成長像當巨大,但這是相對難預期的成長類型,不像技術,我花時間研究什麼,就能學會什麼技能,所以決策放在眼前時還是會感到迷茫。

如果可以的話我也想兼具兩者...或更多,但時間真的太少了。總之,剛好發病一下而已,不用太擔心我,一陣子後就恢復了(然後隔一段時間再低落,笑死)。

寫筆記的時間也要緩了,Render Feature 的筆記完成後可能就先中止,暑假要把網站的留言板和多語言搞好,然後開始著手翻譯文章,學習外文的寫作,這是比起技術更迫切的需求了,可能也是信心低落的觸發原因之一。

語言
四月開始有點怠惰ㄌ,但還是維持著 Duolingo 的連勝,至少維持進步,不要完全停滯下來。但我沒有破壞作息噢,沒學語言的時間都直接去睡了,所以不是滑社群拖延耗光學語言的時間(開始找藉口)

總之,這樣不太好,要振作點才行,要再試著再把學習時數拉升回來 D:

閱讀
最後就是這兩個月的閱讀,跟家人請款到了買書的資金,之後能比較放心的買書閱讀了,好欸 :D

“我們必須冒險,生命才能前進。認識風險,並且知道如何聰明地冒險,是一種重要的生活技能”

一本關於風險管理的書,但不侷限於投資理財,而是談論更廣泛的風險,或者說,你日常的一切。我們日常的一切,小至你決定出門的時間,大至購買房產的判斷,都涉及一定程度的風險管理。

休學追逐夢想的風險高嗎?或許對旁人來說這是孤注一擲,但對於有明確目標,知道自己該往何處前去的人,休學反而才是風險最低的選擇,因為留在大學不會幫他更靠近夢想。

書中用各種故事展示風險如何運作,也舉了一些高風險行業的例子(如妓女、狗仔),讀起來挺生動的,沒有太多死板板的專有名詞,

“寫作和任何一種工作、一門技藝沒什麼不同,它只是我們積極入世的一個工具、一份依頻”

在 Readmoo 的授權到期列表上看到的,試讀了一下覺得挺有意思就買了,作者從序章就批判了一番華人的文學教育 ww 老實說,我真的覺得義務教育裡的國文課很糟蹋文學。

書中收錄了近代許多作家的文學創作並加以解析,每個章節都會根據對應的主題展示大量範例,顏色、花朵、美食、孩童、標點、比喻、甚至情色描寫都有。也是讀了這篇文章後,我去逛文學館時才更有心思欣賞內容。

“如果你試圖揮棒打擊以90%光速投出的棒球,會發生什麼事情?”
如果地球上所有人同時拿雷射筆對準月球照射,月球會變色嗎?
如果拿方塊磚頭來製作元素週期表,每塊方磚都以相對應的元素製成,結果會發生什麼事?
如果你找個地方,聚集1莫耳的鼴鼠,結果會怎樣?
這本書的作者會用科學理論探討各種莫名其妙的問題,總之ㄎㄧㄤ爆。

“如果你不替自己的生活排定優先次序,別人就會代勞”
在大學的四年裡,你真正想獲得的是甚麼?不是成績、不是專業、更不會是賺錢。我想要的是只屬於我的大學生活,我想要的是這段獨一無二的經歷,我想要的是為人本質的成長。為了獲得這些,我願意捨棄一切次要事物,讓我全心投入在這項最重要的事上。

這是一本關於「取捨」的書,你的每個選擇都有其代價存在,每當你想多「取得」一項新的事物,就代表有其他某像事物將被「捨棄」。或許你認為自己有能力全部都要,但這是不可能的,你只有有限的時間與精力,若你不主動放下某些次要的東西,可能在不知不覺中被迫捨棄了其他更重要的事。

“生命只存在於當下此刻。你若放棄當下,就無法深刻活出日常生活的每個瞬間。”
雖然一直有隨手紀錄的習慣,但多半都還是等月底寫日誌的時候才回顧這段時間發生的事情,也是讀完這本書之後,我決定要再每天都紀錄一件當天最有意義的事情。嘗試了幾周後,我覺得自己又過得比先前更充實了。

這個月我也把社群媒體從常用的瀏覽器登出了,其實之前用電腦時一直有分心狀況,事情作到一半會很順手的打開社群,然後再被自己打斷,煩躁。所以我也效訪自己在手機上的作法,把社群媒體分離到另一個瀏覽器,多這一步就很大的抑制分心了。我浪費的時間越少,就能花越多時間在真正重要的事上。

“設若這些人造人已經逼近「生命體」(不妨稱之為準生命體),那麼人類是否有權剝奪它們的「生命」(此處又衍生一個問題,所謂的生命該怎麼定義呢)?”

也是科幻作品的經典之一,基本上,我覺得可以把小說和電影《銀翼殺手 2049》當作兩個相同世界觀但不同劇情的作品,所以先看哪個都不用擔心據透到。劇情主要在談仿生人相關的議題,國文作業也有回答過相關問題,真的是有意思的題目。無論 AI 還是仿生人,他們的出現不光是取代人類工作那麼簡單,更大的衝擊還是對人類存在意義的挑戰。

作者對主角的心境描寫也很是卓越,怕據透就不細說了,總之也是經典科幻神作。

“妳有沒有想過,如果在某個時候,稍微改變一些細節,也許妳就會有不一樣的工作、不一樣的老公或不一樣的孩子?妳覺得有沒有可能那麼做以後的妳會比較快樂?如果妳能看到另一種人生選擇,妳會有什麼感覺?”

如果喜歡星艦迷航(星際爭霸戰)的話,你可會覺得這部作品蠻有趣的,它是在相同世界觀下的故事 ,但用配角的視角看劇情。沒錯,就是那些被荒唐原因收掉的配角,蠕蟲、發狂機器、外星性病、還有冰鯊??

原本以為只是諷刺喜劇,結果最後帶出了對人生意義的大哉問,讓我對他的評價又更上了一層。

“我過著我的人生,這是我唯一擁有的人生。世界上沒有另一個過著平行人生的我,就算有,我也不會在乎。因為我已經有我的人生了,就在這裡,此時此刻。”

不知不覺又變成七千字的長文了
就醬,愛你們
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5707817
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:學習|大學|日誌

留言共 6 篇留言

御安鴨·摸頭害鴨哭
時間過得好快qwq

04-30 20:11

樂小呈
真的,轉眼就要一年過去了 D:05-01 19:40
矮鵝
太酷了吧,這篇好像什麼新技術的研討會議記錄~~

05-01 06:53

樂小呈
把學習日誌加回來是正確ㄉ :D05-01 19:44
芬咘奒☆
學上一上就變成講師了......[e11]
每次看你的文都會自愧自己把時間都浪費去哪了==

05-01 23:43

樂小呈
欸嘿 (ゝ∀・)05-02 19:18
樂小呈
來寫日誌就知道時間到哪去囉 :P05-02 19:18
%%鼠 拒收病婿
用TDD做教學,好讚@@

05-02 02:36

樂小呈
老師都自發的教學,有夠優質 :D05-02 19:19
SamChu
雖然我不喜歡Duolingo,但是維持語言習慣是好事,加油XD

05-02 03:05

樂小呈
為什麼不喜歡 Duolingo 啊,好奇 XD05-02 19:19
SamChu
https://youtu.be/t3MgFxwcfLM
很多meme關於那隻臭鳥XD
單純覺得上面學習進度偏慢,我比較喜歡看Youtube學語言

05-02 22:40

樂小呈
原來如此,我也覺得蠻慢的,但這是目前對我來說好維持的了 QQ05-03 06:56
我要留言提醒:您尚未登入,請先登入再留言

30喜歡★angus945 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【又一年】經營小屋四周年... 後一篇:【生活】畢展、期末和故事...

追蹤私訊切換新版閱覽

作品資料夾

colanncolann
想找發明、小說、繪圖、漫畫、動畫、配音、音樂、模型的創作者們,一起交流、交友、交往! >.0看更多我要大聲說昨天23:31


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】