
看了一下過去的日誌內容,我在2024年的四月中旬發表了第一部遊戲,也就是把短篇小說製作成galgame,或稱視覺小說的東西。
71Please respect copyright.PENANAiYP4b8Esj9
當時源自於對作遊戲開始有點興趣,恰好碰到一個不需要寫程式碼,直接使用物件拖曳等功能來完成的線上創作系統,我就挑戰看看。
71Please respect copyright.PENANAOqFVoNYgfa
要說那一次的經驗,就是在每一幕的物件操作、素材整理花費大量的時間,文本因為是拿已有的作品略為調整成劇本樣式而相對沒有花那麼多時間。
71Please respect copyright.PENANAOHejXkn5Ba
而最重要的,是在那一次的經驗中學習演出。當時我在玩遊戲的時間,一邊將其中所使用的演出技法用筆記本繪製下來,讓自己能掌握這些固定套路,而有了本次的經驗後,往後我在玩各種遊戲時,都會略為記下每家公司特有的演出,其實也沒那麼用功啦,差不多都是「喔,居然還有這招啊」,在佩服的同時就想偷學來用(笑)。
71Please respect copyright.PENANAzbSkxbaXdq
當時技術上的困難點,是由於那個編輯系統實在過於陽春,儘管有程式碼能夠直接修改,但因為我對那種編輯方式不熟,不知道是該系統真的無法一個個作出我要的滑動功能,還是說只是我辦不到而已,總之那時在移動和使用素材上有所受限。
71Please respect copyright.PENANAsHFvbZaLpy
另外,還有每一幕的調整問題。那時因為對於該編輯器的模板我還是不熟悉,基本上角色立繪擺設上去時,都需要重新拉大小和調整位置,理所當然在手動的情況下會出現偏移。71Please respect copyright.PENANACxxmnV8Oq3
71Please respect copyright.PENANAAFbkPTUc4L
最初做的那款遊戲是用簡單的素材製成,而後來挑戰的第二款,是因為我找到標示來源便可使用的立繪差分,因此便優化了第一作只用單一立繪而無表情和切換姿勢的情況。
71Please respect copyright.PENANAs0mZWCwFuF
過程中同樣在擺設上花了一定時間,不過也對於演出和整體節奏有更熟練了。
71Please respect copyright.PENANAOnLtGVuQGS
音樂方面,從第一作學到每一曲根據場景切換需要更加平滑過渡,不過基於素材本來就不太統一的關係,或許也是必然的現象吧。總之對於此事,我稍微將之放在心裡。
71Please respect copyright.PENANA2O2KUSzxka
本次會重新作一個遊戲,是來自於我在跟AI對話,本來是搜尋遊戲公司,接著我那時就想到當時的編輯器實在不怎麼好用,在作出感想後,本以為蕾西亞(AI)會理解我的心情,結果她淡然地推薦了兩三個遊戲開源引擎。我去查了之後,想說下載來玩玩看,於是便有這次的情況。
71Please respect copyright.PENANAHYTQCWi20V
記得在這段時間內,我也有搜尋其他引擎,但有一個是要轉區,否則連程式碼都打不開,另一個則是明顯又綁在該應用社群。有了過去的經驗,我生理上覺得受限於他人的應用社群實在不是一個好的對策,加上他的編輯器也不是特別好用,因此就這麼作罷。
71Please respect copyright.PENANAqAjCvEFcWX
而這次下載Ren’py之後,一打開就有系統語言選擇,加上沒有各種零碎又奇妙的東西,應用程式的介面清楚,打開又很快速,不跟你囉嗦,這點很深受我的喜愛。71Please respect copyright.PENANAaUGlxJznLQ
71Please respect copyright.PENANAEd5vJ5RJa2
本次最大的挑戰,在於程式碼編寫──我雖然很想這麼說,但其實還包括原創音樂的製作,不過我們就先從程式碼開始說吧。
71Please respect copyright.PENANAksflPKWKF2
首先是文本處理,這點跟之前一樣能比較快速處理,而後來我發現還能透過AI來優化流程,至於後續就需要實際編寫程式碼。71Please respect copyright.PENANAhn4y2X5FKS
71Please respect copyright.PENANAffWPE1Kp2L
Ren’py的架構是內建一部份的動作指令,以及基礎的系統介面,但除此之外,特定的動作或一些介面素材的置換,就需要自己去定義和修改替代。
71Please respect copyright.PENANAqT0PJ7KnIT
而在這個過程中,我對於遊戲的檔案格式有更多的認識。
71Please respect copyright.PENANAZc2UEcc9cR
以往只知道代表應用程式本體啟動的exe、特定模組的dll、記事本的txt,如今新接觸到了程式碼編寫所使用的rpy檔,以及後續封存素材與程式碼的rpa檔。
71Please respect copyright.PENANAQGAJv5kxUr
在Ren’py內部有能點擊下載的編寫工具,我覺得這點十分方便,因為下載那個就能直接編寫rpy檔案,還有區分指令顏色的功能,能輔助檢查有沒有打錯。
71Please respect copyright.PENANAlERjLRZKWg
像這樣能幫助新手安裝需要的軟體也是它給我觀感良好的體驗之一。71Please respect copyright.PENANAYjdvFjWnXk
71Please respect copyright.PENANAenXtP1tKWW
rpy檔是程式碼所使用的檔案,分成script、option、screen、transform、init等項目。
71Please respect copyright.PENANAVUdqJrlg5H
不過,倘若你想要把所有的程式碼都寫在一起也不是不行,只是會更容易出錯,而且要找東西會變得比較麻煩,因此能分類好就分類好,這也是程式碼管理的一環,應該吧!71Please respect copyright.PENANAZ87TklgJee
71Please respect copyright.PENANAzIljTaNN2e
話說回來,由於Ren’py本身已經幫你建好script、option、screen資料夾,裡面也有對應的程式碼功能,所以倘若不知道那是什麼,最好就先不要太有個性地亂改。
71Please respect copyright.PENANATrIhu0FtJ2
至於需要自己額外建立的是一些transform、init、define之類的。71Please respect copyright.PENANASsNVhiDavT
71Please respect copyright.PENANA1xK2oL3Lzh
要簡單說明的話如下:
71Please respect copyright.PENANAZI3hLQZaKF
script是編寫遊戲文本最主要用到的區域;
option是一些遊戲介面功能設計;
screen是介面的定義與設定;
transform是自己定義方便的特效或畫面模板的區域;
init則是啟動遊戲時會先跑的指令,這個可以視情況寫在其他rpy或自己方便的地方。
define則是關於定義的集合檔案,但因為我這次沒有太多素材需要定義,因此都寫在script的開頭。
71Please respect copyright.PENANAWUqJfxv8Sf
基本上,除了內部系統已經幫你建好的rpy檔案,其他都是看情況來額外建立。建立方法有幾種,一種是直接新建新的格式檔案,也能用記事本修改的方式,新建一個txt檔案,然後修改名稱來直接將檔名變更為rpy檔案格式,確認後就能得到那個空檔案,再用編寫程式碼的軟體打開就行了。71Please respect copyright.PENANAnzlhTjflGu
71Please respect copyright.PENANASI8EHOBJNB
其實常用的指令也沒幾個,若是從頭寫遊戲架構的程式碼理所當然需要知道更多因果關係和定義迴圈條件之類的,但若是使用原本就有的指令,或者僅是自己新定義一些動作和素材,其實也就那幾種功能。
71Please respect copyright.PENANAPo9ySqsHal
像是常用到的有剛才說的定義素材或物件的define,還有讓image、audio、scene出現在畫面的show、hide指令,以及讓素材出現不要那麼乾脆的淡入淡出dissolve、fade,讓遊戲畫面暫停的pause、移動相關的linear和ease。
71Please respect copyright.PENANAErFn6MnNOf
其他就是一些絕對坐標和相對坐標之類的,也就是東西的位置定義,還有透明度alpha的設置。
71Please respect copyright.PENANANl74mk2EcH
基本上只要自己寫出錯,就去問AI,很快就能發現問題出現在哪裡,並且自己整理紀錄容易出錯的地方,下次就比較容易知道錯誤出現在哪裡。
71Please respect copyright.PENANA5LbADXaklv
目前我最為之戒慎恐懼的是,檔案的命名,我總是會打錯字母,然後實際套入系統就無法正常運作,果然打字錯誤是無論在哪個數位領域都容易跌入的坑……
71Please respect copyright.PENANAtR7wZPsyOJ
習慣之後,製作過程就是發現問題根解決問題的過程。而若是有想要的功能,只要描述一下去拜託蕾西亞,她總是能給我抄作業,我是說,會示範標準答案。不過,有時也會因為你沒給她足夠的資訊,導致她的答案有更好的方式,或者依然有錯誤的定義,需要多跟她追根究柢到問題解決。
71Please respect copyright.PENANAmhRtSA7BQc
後續階段,也就是今天讓我比較訝異,或稱為麻煩的事素材的封存。一般而言,我們得到的遊戲檔案基於保密和玩家體驗,不會給你直接看到程式碼、CG素材、音樂檔案,除了開頭動畫或icon之類的例外,其他都是存在加密的檔案中。至於那種破解修改我們先不討論,總之,這樣的程式碼和內部資訊,會統一用archive定義並封存起來,也就是告訴系統,當遊戲要輸出時,哪些內容是需要保密,哪些是能直接放在遊戲文件夾裡面並開啟的。
71Please respect copyright.PENANAjnNXmWOZve
由於我今天才知道有這一回事,所以就需要花一點功夫處理。而我也不禁想起製作《unravel trigger》的公司品牌名稱為archive,就有那種將跟夥伴努力製作的素材與遊戲內容,集結在一起的聯想。畢竟上一部作品《創作彼女》是另一品牌,其名稱為aino+links,也是很特殊的名字。
71Please respect copyright.PENANAU2FRv5iYwZ
總之,編寫好需要archive封存的定義之後,就能進行輸出作業。而輸出因為Ren’py的功能十分完善,能幫忙檢查程式碼是否有錯,還能刪除暫存檔案,再進行輸出。輸出也能勾選能適用windows、mac、linux的類型。
71Please respect copyright.PENANA7szSKgSH9a
至於分享的話,根據我詢問的結果,目前上架作品比較方便的是itch.io或dlsite,這兩個很康便建立帳戶,也可以免費上架,如果是換成steam或應用程式商店,就需要market專用格式,也需要上架費用,金額大概一百美金(台幣三千多元)。
71Please respect copyright.PENANAcKzhzuRqkc
回頭來講講音樂吧。
71Please respect copyright.PENANAkcxMlTyDpQ
在製作即將邁入後半段時,我若有似無地向兩位朋友徵詢意見,他們都說最好還是要有音樂,不然像是恐怖遊戲(笑),所以我就毅然決然下定決心,把自己塵封四個多月的midi鍵盤拿出來用。
71Please respect copyright.PENANAPQmdyHtPQ4
要註冊新的產品帳號,以及下載一些零散的軟體讓我遭遇很多挫折,所幸即便不需要那些鬼東西,也能直接在musescore正常運作,這點真是幫了大忙。因為其他無關的都能等往後再研究。
71Please respect copyright.PENANAEbz1rZSwWR
創作音樂需要面對一些基礎能力不足的窘境。像是我察覺到跟主題性音樂不同的是,我做不出那種主題感,原因在於我發現自己大多是用不怎樣的主幹,並且隨意亂搭配和弦,這樣導致和弦反客為主,等同於一個人不知到自己要講什麼卻用無關的話題天花亂墜。
71Please respect copyright.PENANAGJB0zXFeu1
於是我開始motif的練習。所謂的motif再術語上被稱為動機,也是最小的可辨識樂句單位。可以用一句話表達你想講的話,或者故事中的一個主要概念來進行對應。71Please respect copyright.PENANAQnMvKTIYhH
71Please respect copyright.PENANATrIDcT1zZI
總之,在音樂上,motif就是初始最重要需培養的基礎能力。而galgme的背景音樂,甚至是未來有人聲的音樂都是以此作為起點。
71Please respect copyright.PENANADHBisEIPfk
該說是正好嗎?galgme的背景音樂大多是用motif進行變奏或調整反覆,儘管也會有一些編制上的技法運用,但核心還是motif的構思與詮釋,也就順勢讓我能作為挑戰的課題。
71Please respect copyright.PENANABZGXnOApEQ
經過一番嘗試,我稍微弄出一點感覺,不過我也深知自己基礎能力遠遠不足,這方面的基本功還是需要時間慢慢累積練習。
71Please respect copyright.PENANASsk7osrA0q
購買midi鍵盤讓我很有作音樂的感覺。當初用一般鍵盤來作曲非常不方便,而且也沒什麼樂趣。如今只要卡關,就能自己隨手亂彈,能稍微瓦解過程中的挫敗,並且轉換心情。
71Please respect copyright.PENANAIujSlTZr2U
而至於畫面部分,也就是立繪、CG、背景之類的,能看得出我為了減少作業時間而有所取捨。若是每一部分都要盡善盡美,那可能製作時間就要延長到一兩個月,對我來說有點缺乏效率,於是就選擇在一定範圍內,有達到那個標準就給自己通過。
71Please respect copyright.PENANAa6HMiC2I6L
硬要說的話,我花最多時間的是在餐桌上的食物那個場景。我赫然發現自己不會畫長棍麵包,於是連忙到圖片網站惡補資訊,而餐桌場景我原本以為能拿舊圖稍微改一改就能用,但感覺其實已經跟重畫沒有兩樣了,這到底是怎麼一回事啊……而且畫完之後,我甚至覺得我畫食物是最認真的,因為食物只要一點點崩就會不像。角色插圖的話,由於比較有經驗,也比較好抓平衡點在哪裡。
71Please respect copyright.PENANAdt3yGaxkfV
基本上角色圖是拿有的素材進行處理和作為基底重新繪製。有幾個比較值得說的地方。
71Please respect copyright.PENANAerCA3SRCpt
其一是眨眼動畫。71Please respect copyright.PENANA5FSv7wOcbw
71Please respect copyright.PENANAkSqUB59Vwj
這肯定要拿出來講一下。
71Please respect copyright.PENANA5hEd1e2n6a
當初在玩《創作彼女的戀愛公式》的時候,我一打開赫然發現所有角色的立繪都會眨眼睛,不經感動到有點想哭。為什麼會做的這麼用心?71Please respect copyright.PENANALBAUDVeUNm
71Please respect copyright.PENANAeWZnWhTV7a
與此同時,我想著過去雖然也試著繪製有如動畫差分的圖,但一直沒有讓角色在螢幕上動起來的經驗,於是就試圖自己用畫來呈現。
71Please respect copyright.PENANApLgSItPYAT
要製作眨眼動畫,最少需要三張圖:眼睛全部睜開、半閉眼、全閉眼。然後依照隨機的變數讓這三張圖在程式中替換使用。
71Please respect copyright.PENANAju9Eu16UVg
見到繪製出來的角色眼睛會眨,我的內心頓時湧上一種感慨與莫大的成就感。況且,就算劇情無聊,也能對著立繪的眼睛看,欣賞那樣的動態感和現實感,簡直是太讚了!
71Please respect copyright.PENANAIEznLFh3tO
至於CG差分,繪製CG需要有很高的專業度和畫面精緻度,但這些放在試作品上就是需要有所取捨的地方。我自己是想著,即便畫面可以比較陽春一點,但氛圍與表情要讓自己能有所感觸,覺得「就是這樣!」才會給過。
71Please respect copyright.PENANALJi2NtKmfq
在前面的繪製還算順利,但這兩天在結尾CG卡住。可想而知,好不容易玩到最後,要是看到太陽春,難免會覺得體驗很差,可要是跟前面的品質差異太大,又會缺乏整體感,外加還得讓自己覺得氛圍有到,這就讓我陷入許多思考。
71Please respect copyright.PENANAj7JvnrOuY1
不過今天再稍微磨一下之後,有達到自己內心的那把尺,所以也就當作通過了。
71Please respect copyright.PENANAZC0MeXGfHI
至於主畫面的圖片,我想著再額外畫也不知道要畫什麼,加上若是主畫面很高品質,但內部卻比較陽春,同樣會缺乏統一感,於是最後就將沒使用到的圖設置上去。
71Please respect copyright.PENANAi88FN4PA9R
今天上午,我詢問蕾西亞,日本galgame公司有哪些取名原則,在研究之後,我想了幾個方案,最後是現在所呈現的那樣。只要放上片頭片尾,以及最後的製作名單,就會給人煞有介事的感覺。
71Please respect copyright.PENANAeyVp8Ri0mu
或者該說,一路試玩到最後,片尾工作人員名單對我來說同樣是個重要的激勵與獎勵的環節。
71Please respect copyright.PENANAbbwIuXsNXR
而綜合而言,在短時間之內碰了程式碼、音樂、繪圖的各種東西,消耗了許多的腦力,不過也收穫了各式各樣的知識,以及釐清了一些未來的課題。
71Please respect copyright.PENANAX4NqOKxEmm
而本次關於文本,我基本上沒有特別改寫為劇本格式,往後有機會在這部分應該也要試著寫寫看。至於選項部分,我雖然設想了三四個可以使用的段子,但因為總感覺會扭曲我創作這篇故事的原意,於是最終選擇沒有納入。
71Please respect copyright.PENANAU1Wd8taJDZ
以上包含各式各樣的東西在內,都在此作個紀錄。
71Please respect copyright.PENANAP8CsWcG8Gt
其餘未竟之事,就留給未來的自己繼續向前完成吧。
71Please respect copyright.PENANAneNcGKlRg5
遊戲下載連結:
71Please respect copyright.PENANAMDofYNE9yz
The Unbeaten Blade and the Sword Maiden_Breaking the Eternal Ice by Yalin_Hayami
71Please respect copyright.PENANA8WyBGhpMZk
71Please respect copyright.PENANAmiJaxMTAUn
71Please respect copyright.PENANAAwW0zRNCdi
71Please respect copyright.PENANABeLt9K2eVQ


