小屋創作

日誌2019-10-15 18:48

【獨立遊戲心得2】使用Unity獨立製作恐怖手遊心得 / 已上架Google Play (Android)

作者:幼女守護僧 : 傲真翔也

綠字 = 後來更新補上的一些內容,內文可能有些影片原作者已刪除的就沒辦法補了

2022更新 :
1.重製主角、主角雙親的模組 (其餘NPC模組決定保留)
2.修正所有場景的UI
3.大幅度降低遊戲難度 (敵人血量與敵人跑速)
4.增加箭頭指引 (更多提示指引)
5.更新部分劇情對話 (更加明確)
6.更新部分劇情BGM
7.修正部分場景隱形牆
8.回憶錄場景增加內容
9.修復破圖問題
10.修復異常傳送問題

場外:
使用Unity獨立製作恐怖手遊心得

前篇(PC端 / 平台:Steam):
花了幾個月所做的恐怖遊戲心得/ 已上架Steam

目錄

l  前言
l  遊戲簡介
l  製作過程簡述
一.  下載Unity
二.  JoyStick
三.  分享新發現
四.  豐富的3D模型
五.  非專業優化
六.  再提Enemy AI
七.  音效
八.  其它
l  上傳GooglePlay
l  結論&其他

前言:

大家好,純潔僧又來了,今天要分享的也是一款恐怖遊戲,與前一部作品最大的不同就是此款是手機遊戲(這年代甚麼遊戲都要來M一下,電腦PC方面能使用模擬器遊玩,後面會提到),此次會將文章分享至場外與小屋創作,本篇的重點仍然是整理製作過程中有發現哪些實用或是新發現,如果還沒看過前篇的紳士們,建議可以先去瀏覽一下(網址在上方)。

遊戲簡介:
遊戲名稱:珍惜現在 Cherish the moment
遊戲平台:Android
遊戲語言 : 中文 / 英文
遊戲類型:冒險/恐怖遊戲/獨立製作
遊戲簡介 :  使用Unity遊戲引擎、Youtube無版權音樂、Asset Store、Sketchfab允許商業使用3D Model製作,遊戲過程中反映出目前人們的處境與心中所想,
所產生的壓力與負面情緒。
故事簡介:從小與其他同齡卻有著不同命運的主角,在某一夜晚經歷了一趟生死關頭的旅程,並於途中了解到其實自己是幸福的,從叛逆的個性轉變成懂得珍惜身邊所有的一切…

GooglePlay 頁面: https://play.google.com/store/apps/details?id=com.alex94i60.Cherish
(使用電腦/手機於google play搜尋皆可找到)
手機:
電腦:

FB粉絲頁:
https://www.facebook.com/%E7%A5%AD%E5%93%81%E7%9A%84%E9%80%86%E8%A5%B2The-counterattack-of-sacrifice-2306200966370195/
遊戲宣傳片:
https://www.youtube.com/watch?v=IrfqAoQK9iA

遊戲截圖:





此作品中有些場景建構參考了某些線上遊戲中的場景(都已終止營運,一直等不到復活的一天趁此機會模仿個類似簡單的),同時在最後也仿效某部神作的結尾
遊戲選單中跟上款一樣有選章節的功能

製作過程簡述:
一樣要先強調一點,這是第一次挑戰手遊…,以下有些個人的”非專業”心得,若是有錯誤歡迎專業人士給予指教或是更正
一.下載Unity
有興趣了解的話最初仍是要先到官網下載Unity,可以的話就順便到右上角申請一組Unity帳號吧(後續要開專案時或是要到store載模組時會用到)
下載頁面: https://unity3d.com/cn/get-unity/download/archive
(這邊我建議載越新的越好,至於為什麼後面上傳google play會提到..)
製作使用unity版本歷程:2017(整體製作遊戲) > 2018(為API28而升級) > 2019(為了更容易輸出apk而嘗試從2017升至最新)
載完後可以先觀看一下入門影片先快速了解一下(前篇沒貼到這個)
https://www.youtube.com/watch?v=OZH7GSsLgaE
在開一個新的場景後建議先到Window>Lighting>Settings>往下拉找到Auto Generate把勾取消,此光照是在場景完成後才執行的過程中CPU與記憶體都吃很大,所以建議場景完成再做(後面會提)。
二.JoyStick
要做手機遊戲要如何讓角色移動、環繞視角、UI觸發按鈕等等,從原本按鍵盤轉變成觸碰螢幕:
2D方面(我沒做2D但應該差不多)
https://www.youtube.com/watch?v=bp2PiFC9sSs
3D方面
第一人稱: https://www.youtube.com/watch?v=CmCVtEZUKIs
第三人稱:https://www.youtube.com/watch?v=8ycgJbQegAo
(影片中所用到的joystick都有附在影片說明處,或是一樣到store搜尋”joystick”找自己喜歡的style,傳送門: https://assetstore.unity.com/?free=true&q=joystick&orderBy=0)
懶人包:直接匯入Character包或是到store下載Standard Assets > 建立一個Canvas > 新增joystick拖曳至Canvas > 照影片改寫/新增程式碼 > 將移動桿/跳躍/環繞四周UI拖曳至指定欄位
小提醒:記得在程式碼最上方加上這句
原本按鍵盤的Input.GetKeyDown也要改成:
上圖的E則需要在指定UI加上ButtonHandler並在Name輸入E:


三.分享新發現
接著來比較此次跟上一部作品,能分享的資源可能較少,但有了更多的互動性:


1.可與NPC互動觀看劇情對話

咳咳...如果要以最快速做到如何跟NPC對話的方法,推薦可以到store搜尋”VIDE Dialogues”(載下來後裡面有範例場景可以先自己摸索一下)或是使用Fungus,如果以上都用不習慣可以挑戰用StartCoroutine(我有很多事件都是用這達成的除了劇情對話以外,舉例我開一扇門,等門開到一半過0.5秒後鬼跑出來,再過0.5秒主角表示驚嚇這過程都能用StartCoroutine來達成,有興趣的朋友們可以上網了解一番)

Vide Dialogues:
https://assetstore.unity.com/packages/tools/ai/vide-dialogues-69932
介紹: https://www.youtube.com/watch?v=BmSR-XMb908
Fungus
https://assetstore.unity.com/packages/templates/systems/fungus-34184
簡單範例: https://www.youtube.com/watch?v=6mXhMzGv-ng
StartCoroutine(巴哈教學文)
https://home.gamer.com.tw/creationDetail.php?sn=2649394
簡單範例: https://www.youtube.com/watch?v=qolMYyq0nX0
StartCoroutine相關到google/youtube都有很多可以參考的

2.見到鬼怪除了基本的逃跑躲藏還有新增攻擊
有興趣做射擊遊戲的朋友們可以參考這邊:
https://www.youtube.com/watch?v=pa_ux-FXk_o&list=PLlEM6ellsQ5hX2r2ScdToMB7Tcds-18ot&index=1
(一系列教學,我雖然沒看完,但教程應該算蠻完整的,包括槍的動畫:射擊/換彈匣、射線對敵人造成傷害、敵人重生、血條等等,作者似乎還有在持續更新中)
3.任務提示(尋找過關道具)
許多恐怖遊戲都會用到的….叫玩家到處尋找道具或是鑰匙開門之類的,找到一個後會加一變成 1/5 ,滿5個前往下一關,最簡單可參這邊:
https://www.youtube.com/watch?v=D0lx90n0s-4


4.設定語言變化
上一作品覺得這應該很困難,但實際去store找了一下用起來卻挺容易的(但劇情台詞越多越花時間)
Asset Store頁面: https://assetstore.unity.com/packages/tools/localization/lean-localization-28504

載完後可在場景加空物件後添加lean localitztion程式碼,先按下Languages後的Add裡頭有很多語言可以選擇(我只有選中英文):
接著按下Phrases的Add添加要翻譯的句子,譬如我選了中英文兩種,每個要翻的句子底下都會有中文跟英文的Text:
至於遊戲基本的Terrain(地形) / Asset Store(模組、素材、功能) / Standard Assets(角色控制器) / Mixamo(3D角色模組)可以參考前篇。


四.豐富的3D模型
說到3D模型的話,除了Asset store以外還可以到Sketchfab
網站首頁: https://sketchfab.com/feed
裡面有超多精緻3D模型可下載(fbx/obj),可以先申請帳號,搜尋後記得勾選Downloadable
已寄信到團隊中確認只要網頁中有提到Commercial use isallowed可商業使用(如下圖),所以下載前要注意一下:



五.非專業優化
這邊先討論些非專業關於優化的話題吧,如何優化遊戲的方法很多,包括基本將場景上的靜態物件勾選static之類的(會移動有加動畫,例如我們主角本身別勾)
詳解: https://www.itread01.com/content/1544551216.html

由於Sketchfab這網站有一點要注意的,下載前建議看一下Triangles / Vertices (簡稱tris / verts)值
想完全了解這值是甚麼請參考:
https://www.itread01.com/content/1505588286.html
懶人包:像我貼這模組tris有944.6k以手遊來說真得太高了(PC沒親測),自己稍微測試一下,一個場景最好別超過400k,不然畫面會不太順暢。
若是值太高,有兩種解決方法
1.     再找個類似值又低的模組代替
2.     到steam下載一款叫Blender的軟體,載好後啟動(此方法會降低模組品質,使用前請斟酌)
然後確定下載的模組是哪種副檔名就import那種類型的(obj為例):


選擇要引入的目標路徑找到obj後按下import:
接下來如何減少tris/verts可參考(雖可大量減少但付出代價就是降低模組品質):
https://www.youtube.com/watch?v=W9B43k9EWVM
完成後再export就好了
有些場景已經降低tris/verts後,仍有些輸出到手機上還是很卡,又花了些時間摸索,直到更改些關於lightmap的設定…
詳情參考: https://www.itread01.com/content/1541926339.html
懶人包:某場景很卡的話建議將光源的Mode改Baked(注意此只適用於靜態,若是會移動或加上動畫者不適用),然後至Window > Lighting > Settings 往下拉找到Mixed Lighting打勾,然後按下底下的Generate Lighting進行(記得將靜態勾statick,不然照完會呈現黑色),場景物件材質越多執行時間也越長CPU也吃很大,假如想降低光照時間,可到Lightmapping Settings中的Indirect Resolution設定成0.05之類的(預設2),照此設定我這邊放到手機上後就變得很順,若是結果不如預期更糟糕可以選擇ClearBaked Data將光照去除。
原本輸出放到手機上測試整個很卡,做了以上幾件事後順很多…

六.再提AI enemy
此次遊戲中的鬼怪仍沿用上一篇所提到的:
https://www.youtube.com/watch?v=torXrhhI47Q
後來有稍微改了些程式所以會有不一樣的變化,雖然影片都有教但我將幾個可能會忘記加的提一下,整個敵人完成後再編輯時大概長這樣:

最外面的綠框是負責感應玩家的(Box Collider記得Trigger),玩家在被感應到敵人就會追上去,除非逃離感應區(這些Box Collider都會隨著怪物一起移動),記得在敵人身上裝Nav Mesh Agent,不然敵人不會動:
至於這兩個script可以看上面影片&說明區取得,主要是敵人一開始會跟著有動畫的隱形物件走,感應到玩家就追玩家,玩家逃離回去繼續跟著隱形物件:
然後這個跟敵人差不多寬的Box Collider則是玩家碰到就GG,而GG後要加上死亡動畫或是直接死亡則看自己要如何設計:
然後這是敵人可移動的範圍(我是用3D Plane),鋪完後記得勾右上角的Static:
範圍路線好後接著到Navigation按下Bake,結束後查看那些3D Plane是否有變成藍色狀態,有的話代表成功,可將Plane的Mesh隱藏起來:
關於敵人的教學也很多,大家可以去youtube尋寶(unity enemy ai)


七.音效
遊戲中可以添加一些音效是加分的,但過度使用可能會也會扣分吧,若是youtube沒滿意的音效,還可以參考一個名叫freesound的網站,裡頭有多種豐富的音效可供使用,下載前記得看一下關於版權的訊息。
網址: https://freesound.org/


八.其它
過程中難免出現一些不應該有的錯誤分享一下(看不懂沒關係此處可略過)
疑問.明明放了一個敵人也加上Nav,敵人會朝我衝過來但碰到我怎沒反應?
解決.敵人身上box collider少勾trigger
疑問.增加一個UI按鈕但按一下卻變成好幾下?
解決.將程式碼中的GetButton 改成GetButtonDown
疑問.在某物件上加動畫然後執行測試,物件卻沒任何動畫?
解決.找到物件上的Animation > 右上角點Debug > Legacy打勾
疑問.在某物件上加動畫然後執行測試,卻顯示錯誤Null值?
解決.會有Null值原因很多,可以檢查一下程式碼是否有將其隱藏或是檢查父物件是否有隱藏,更多Null值資訊: https://www.google.com/search?q=unity+null+reference+exception&sxsrf=ACYBGNRKBVAfYtu6J318xMJLgUdN0hffeg:1569642145494&source=lnms&sa=X&ved=0ahUKEwihu4bUzPLkAhULy4sBHfJNCSsQ_AUIDSgA&biw=1298&bih=665&dpr=1
最後再來匯整一下:
宣傳片使用:Sony Vegas Pro13
圖片或Logo相關:PhotoShop
尋找教學或是程式碼相關:Google或Youtube(建議使用英文搜尋)
翻譯相關:Google / Google翻譯
記錄撰寫:Word / Excel
截圖:Bandicam
音樂音效剪輯: https://mp3cut.net/tw/



20210911更新懶人包 :
1.Build Settings 請勾選Build  App Bundles(Google Play)
(如果是前幾年就發佈過的應用程式可以不用勾,可以照以下的方法就好(Split Application Binary),更多可以參考這裡 : https://forum.gamer.com.tw/C.php?bsn=60602&snA=3915&tnum=1)

2.Project Settings中的Scripting Backend選ILI2CPP
(若遇到IL2CPP.exe Did Not Run Properly的輸出問題,需要額外安裝vs c++ build tools)

3.再勾選下方的ARMv7 / ARM64

4.API至少要30以上
(YT搜尋"Android Studio API30",後續幾年後的要求會越來越高)

5.Publishing Settings請記得申請一組Key並輸入密碼,不然無法上傳到Google Play
(詳細說明可至YT尋找"阿葉Google Play")


上傳GooglePlay:
接著如果要輸出成APK的話要記得載SDK與JDK要不然無法正常輸出
文字教學: https://www.gameislearning.url.tw/article_content.php?getb=24&foog=9997
教學影片: https://www.youtube.com/watch?v=fYQ-ExZFEOY
(我的SDK/JDK是在幾年前就安裝好的,當初是不是去官網載的我也忘了~~”,總而言之,大家可以直接去官網下載,影片說明處有下載網址)
載完解壓縮後,回到Unity > Edit >Preferences > External Tools 將剛剛壓縮完成的路徑加進去。
平台切換成Android(可能需要一些時間):
假如輸出出現紅字錯誤的話,錯誤的緣由也是百百種…,當初輸出時也是遇到蠻多問題的~~”,譬如可能輸出完後跳出兩三條error,可能是將場景中的某個物件沒刪乾淨或是更換SDK版本,建議可以將error紅字整個複製起來google找答案。

接著要做的就是開通Google Play Console
教學影片: https://www.youtube.com/watch?v=-Pg0UUHNyzc&t=220s
懶人包:Google搜尋Google Play Console進入網站登入Google帳號使用信用卡購買後台(美金25元,一次性付清,之後要再上架第二款apk就不用再付了)
接著沒意外會來到後台管理頁面:

接下來大家比較關心的是賣出的摳摳要怎麼匯到我們的帳戶(免費apk可無視),點左下角的設定>開發人員帳戶>Payments設定頁面裡的>收款方式,裡頭就可以設定你的銀行帳戶了
接下來呢..講述一下我在剛開始註冊使用這後台印象是非常好的在心裡也是打了蠻高的分數,直到我要將APK上傳後續遇到的問題,整個印象是大打折扣唉..
首先要先通過審核前要做到:
l   商店資訊(apk名稱 / 說明 / 圖片 / 影片 / 網站等等)
l   內容分級(詢問遊戲中是否包含情色或是暴力之類的勾選題,最後會自動幫你分級)
l   定價與發佈(免費&付費,以及定價範本 / 廣告/ 提供給哪些國家下載)
l   應用程式版本(詳情見下方)
統整一下要上傳APK的重要事項:
l   APK若大於100mb會麻煩些
l   API目標等級需高於28
l   需支持32/64位元
l   APK需包含金鑰(上面影片有教)
若以上你都沒問題,那恭禧你下面一大串類似抱怨文的…可以跳過了
登入後台後建立一個應用程式,進去後點選應用程式版本,裡面有alpha beta 正式版本可以選擇,點進去同意金鑰後就可以上傳apk,此時的我內心是蠻興奮的,結果出現:

哪泥!? 我現在才知道…

此時的我去google查一下什麼是apk擴充程式檔,看了部分的教學文章頓時懷疑人生
直到我找到這篇才感覺有救了:
https://isaacforfun.blogspot.com/2016/04/unity3dandroid-obb.html
只要勾選publishing settings > split就能解決大於100mb問題了,於是我勾了重新輸出一次,再次抱著期望放上去結果:

上網查了下這api高於28原來是前陣子的新政策..,將build setting打開來看我的api:

竟然沒有api28,於是我去開啟android studio更新了27/28/29的版本,如果不知道studio是什麼,建議去官網載一下順便看一下這:https://rx1226.pixnet.net/blog/post/247771465

上面記得放你sdk路徑
更新完後,再去看了一下還是沒有出現api28,然後我就想到我之前有載unity2018於是打開看了下竟有api28,所以我就花了些時間用2018去開啟專案(這邊要注意,假如要用別的版本去開啟,記得一定要先備份,否則升級過程或是後續error無法解決的話,心血也在一瞬間化為烏有),等了幾小時候完成了,剛開始一定會有些error此時先別緊張,把那些error紅字複製起來去google基本上都能解決,但lightmap的部份有許多場景都要重來,所以只能一張一張慢慢light…,此時我心想2017雖然沒有api28但是有個選項叫做automatic highest installed,想說會不會自己去抓api28勒,於是我又開啟了2017輸出上傳結果竟然成功了!!
上傳成功後,心想著這次覺得大丈夫了,興奮的我按下審核到了下一頁

FK!!

又上網查了下這是跟api28政策同時上路的有夠幹…,趕緊打開unity看2017似乎沒有支援到64位元的(需要有armv7 / arm64),這時的我想想趁這次機會乾脆直接升到最新的2019算了,於是先備份好,接著放了幾個小時升級完成了,打開setting頁面看了下:
總算是有我們要的了(armv7 / arm64),這邊分享一個教訓…,圖下方有個x86別勾,我第一次輸出時三個全勾上傳到google play一樣說沒64位元,因為x86只有32沒64所以一樣偵錯 唉…,後來只勾上面兩個就過關了,接著會發現頁面左邊的選項會有很大的改變,之後就放著給google play審核個幾天(剛好雙十連假,看個幼女補充一下老僧的慾望)
其實還有種方式叫app bundle可以取代app/odd方法,只要輸出時勾選就能使用(版本區高於2018.3 beta),但我上傳後仍出現憑證不足的問題,上網查了下感覺心好累只好暫時勸退使用apk/odd就好了…

審核過了以後,商店資訊/分級該填的該選的都完成後,回到應用程式下方點選開始alpha測試版,要做的就是成為測試人員,測試apk是否正常,點選頁面左邊的版本管理 應用程式版本裡尋找你的上傳的apk(我從alpha開始,所以去alpha區找),點進去後
來到這裡,複製下方的接受網址,開個新分頁貼上後會詢問你是否成為測試人員,接受後就可以下載了(由於是測試版故不會扣除任何費用)

終於可以看到商店頁面了,真香!!==
可以用手機/模擬器測試是否正常,若想更改遊戲內容需重新輸出,重新上傳即可(應用程式版本右上角建立新版本),確定沒問題後,alpha頁面會有一個發布正式版(沒截到圖)能直接正式對外發佈,還有不論是更換版本還是正式發佈都需要些時間給google play更新。
這上傳的部分花了幾天的時間才完成…,原本預估10月初正式發佈結果搞到快10月底了= =”,希望大家也能順利發佈APK!!
成品:

講了許多,總歸一句...unity載最新版本就不會有這麼多問題了...

結論&其他:

結論:這遊戲也大概花了快半年才做好吧,期間仍會看阿津玩些恐怖遊戲,有些恐怖遊戲可能真的抱持著…隨便做一做就丟上平台販售,反正你買了就買了這是你的選擇,此時買家可能會覺得自己是盤子,但我不想要這樣做,雖然我做的也是個小作品而已,在整體遊玩與優化以我目前的實力是無法做到完美的,但我希望能越做越進步,學到的知識也越多,例如下一款想挑戰多人…也沒很多,大概能做到雙人連線的遊戲就算不錯了。
        
其他: 嗯…,若是不想耗手機電,可以用電腦下載模擬器來玩,現在手遊如此盛行,每個人電腦應該都會有夜神/ BlueStack / 雷電之類的,我以BlueStack為例(測試皆正常),個人習慣配置如下:

普通模式:
WASD:角色移動
方向鍵:環繞四周
空白鍵:觸發事件
~:選單ESC
Tab:特殊道具
其它選項:使用滑鼠點擊

攻擊模式:
E:新觸發事件(原空白鍵變為射擊)
R:換彈匣
建議做完一款遊戲,有時間的話記得列一個Credit名單,可將使用過的網站 / 模型 / 音樂音效等等都列入其中,雖然不強迫但我習慣花些時間做一個完美Ending
送給想做遊戲的各位:製作的過程雖會碰上許多瓶頸,但…天無絕人之路,肯花時間一定能找到答案,加油!
再次附上些連結,文章有時間再撰寫的完整些,一樣若是有玩家支持遊玩過程中有發現什麼BUG歡迎寄信給我,感謝各位花時間觀看!
GooglePlay 頁面: https://play.google.com/store/apps/details?id=com.alex94i60.Cherish
FB粉絲頁:
https://www.facebook.com/%E7%A5%AD%E5%93%81%E7%9A%84%E9%80%86%E8%A5%B2The-counterattack-of-sacrifice-2306200966370195/
遊戲宣傳片:
https://www.youtube.com/watch?v=IrfqAoQK9iA



11/02:更新優惠11/02~11/09將有七折優惠
至於如何使用,先進後台點選應用程式>商店發布>定價與發佈>銷售活動內可設定日期與折扣

像這樣:
若有紅字需更正,否則無法使用:

設定完後就會顯示在頁面上,跟steam一樣,冷卻時間30天


感謝收看,希望各位有機會都能玩玩看!

36

4

LINE 分享

相關創作

[達人專欄] 小阿鼠歷險記:春暖花開X渡江X故人(完)

[達人專欄] 2-1.地熱山和骨龍沙漠 Geothermal Knoll and Dragon Bone Desert

一曲醉賭俠-身入險境

留言

開啟 APP

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

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