距離上次發文已經過了3個月之久,不得不說時間過得真快阿
RMXP軟體的編碼並非Unicode而是ANSI,容易造成亂碼(除了腳本內容)
且遊戲字體在不同的語系中容易有亂碼或空格的情況,甚至會有抓不到檔案的情況
除了MV是純Unicode的之外,其餘的版本幾乎都有同樣的問題(2K~VA)
解決方案:
更改"非Unicode程式目前的語言"或系統語系
製作遊戲時所要放置於遊戲內的檔案,建議使用英文與數字取名
解決方案:
使用WINAPI32載入字型
常發生於安裝新腳本後按下F12後繼續運行遊戲的情況下
由於腳本之間定義衝突又互相呼叫,造成疊加的問題(alias的使用)
最常出現在update的定義中,因為使用了alias重新定義了舊方法與新方法而出現
解決方案:
於重新定義的腳本內,找到使用alias的update定義,在後方加上unless $@
例:alias old_update update unless $@
據說這問題一直到MV(預設)都沒有解決,只能靠外部的腳本與插件來解決
原先在地圖中使用公共事件且設定自動執行時,角色與其他事件(除了並行處理)的執行會暫時停止,優先處理當前自動執行的事件內容,直至事件結束角色才可移動
但在戰鬥中呼叫公共事件且為自動執行時,公共事件就只會執行一次,而戰鬥還是跑自己的,並沒有預期中的效果
解決方案:
由於網路上並沒有找到關於XP解決 戰鬥中使用自動處理公共事件 的解決方案
所以在下自己花了些許時間解決了,可自由使用不需回報
(由於有動用到解釋器的update定義部分,若其他腳本也有重複定義,還請自行添加)
XP:自動執行、並行處理
VA:並行處理
雖說事件一多會延遲是正常的,但其實是有辦法解決的
解決方案:
大多的解決方案,其實也就是超出畫面的事件不運行而已,當然也有其他提升效率的方法
XP:使用AntiEventLag或參考VA的Event腳本重寫提升效率、RMVXA(RGD)
VA:Anti-Lag、或使用RGD
這是XP的老毛病了,其他版本的狀況在下不太清楚(應該是沒有?
解決方案:
使用"等待"取代"等待至移動結束",這種方式有點麻煩,但很實際
在預設的解釋器中,他並沒有判斷角色當前的移動設定是否為重複動作
所以如果重複動作是被打開的,就會發生卡死
依舊是XP的老毛病,不過在下還沒遇過,但還是在這裡也提一下
解決方案:
建議不要這麼做,當地圖大、事件多時將會有效率問題
如果將這種使用方式用在打開選單時,會很頭大,假如當前的地圖大小為50x50且事件一大堆,那麼按下按鍵打開選單就會需要等待個幾秒鐘,一次還好,但多次等待可是很煩人的
VX~MV都已經預設好了,沒有這個問題
解決方案:
XP內顯示文字、Icon、Status幾乎都會動用到refresh
在XP說明手冊中有提到,沒事盡量不要持續刷新refresh,而這裡正是這麼做了
解決方案:
1.依情況及條件判斷去refresh即可
XP本身是沒有提供更改解析度的設定的,但是更改為XPA後就可以解除限制了
VX與VA預設雖然有提供,但是最大為640*480
解決方案:
1.如果作業系統是w10,則可以在顯示設定的"縮放與版面配置",設定應用程式大小
100% = 640*480
125% = 800*600
150% = 960*720...以此類推,又或者是降低解析度至800*600也可以
如果編輯軟體的介面大小太小,也可以靠這樣來放大
2.外部腳本
XP:Drago - Custom Resolution II、XP Ace Tilemap(兩者皆會降低效能)
製作遊戲至今,真的發現了很多神奇的Bug,不論是軟體上還是遊戲上
我就將我發現到的關於RMXP的Bug條列出來,雖說有的也是RPG Maker上共通的Bug,但主要以RMXP為主,若其他版本也有相同問題我也會提供解決方案(我找的到的話…)
- 編碼問題
且遊戲字體在不同的語系中容易有亂碼或空格的情況,甚至會有抓不到檔案的情況
除了MV是純Unicode的之外,其餘的版本幾乎都有同樣的問題(2K~VA)
解決方案:
更改"非Unicode程式目前的語言"或系統語系
製作遊戲時所要放置於遊戲內的檔案,建議使用英文與數字取名
並且遊戲內的選字建議選用CJK字體
- 沒有自動載入字型功能
*說個小知識,XP添加字型時,並不是輸入字型檔名稱,而是字型內表示的名稱哦
使用WINAPI32載入字型
連結(含XP、VA、VX或許可以?)
- 會出現stack level too deep的問題
由於腳本之間定義衝突又互相呼叫,造成疊加的問題(alias的使用)
最常出現在update的定義中,因為使用了alias重新定義了舊方法與新方法而出現
解決方案:
於重新定義的腳本內,找到使用alias的update定義,在後方加上unless $@
例:alias old_update update unless $@
其他的腳本錯誤問題解決方案(Ruby):連結
- 在戰鬥中呼叫使用的公共事件,自動執行與並行處理效果無效
原先在地圖中使用公共事件且設定自動執行時,角色與其他事件(除了並行處理)的執行會暫時停止,優先處理當前自動執行的事件內容,直至事件結束角色才可移動
但在戰鬥中呼叫公共事件且為自動執行時,公共事件就只會執行一次,而戰鬥還是跑自己的,並沒有預期中的效果
解決方案:
由於網路上並沒有找到關於XP解決 戰鬥中使用自動處理公共事件 的解決方案
所以在下自己花了些許時間解決了,可自由使用不需回報
(由於有動用到解釋器的update定義部分,若其他腳本也有重複定義,還請自行添加)
XP:自動執行、並行處理
VA:並行處理
MV:並行處理
- 當地圖事件數量繁多,將會造成嚴重延遲
解決方案:
大多的解決方案,其實也就是超出畫面的事件不運行而已,當然也有其他提升效率的方法
XP:使用AntiEventLag或參考VA的Event腳本重寫提升效率、RMVXA(RGD)
VA:Anti-Lag、或使用RGD
MV:效率已經是到目前為止這代最好的了,若要再提升,可以考慮將各方面的渲染方式改變(有能力的話…)
- 事件使用"等待至移動結束"將會卡死
解決方案:
使用"等待"取代"等待至移動結束",這種方式有點麻煩,但很實際
在預設的解釋器中,他並沒有判斷角色當前的移動設定是否為重複動作
所以如果重複動作是被打開的,就會發生卡死
XP:連結
- 事件使用腳本控制開關會有卡死發生
解決方案:
在使用$game_switchs[X] = true/false的時候,下一行加上true或注釋(#)
- 為了在其他的Scene使用"顯示當前Map地圖"當背景,而使用Spriteset_Map
如果將這種使用方式用在打開選單時,會很頭大,假如當前的地圖大小為50x50且事件一大堆,那麼按下按鍵打開選單就會需要等待個幾秒鐘,一次還好,但多次等待可是很煩人的
VX~MV都已經預設好了,沒有這個問題
解決方案:
XP:連結
- 在默認系統的戰鬥中,使用到會refresh的情況,會嚴重延遲
在XP說明手冊中有提到,沒事盡量不要持續刷新refresh,而這裡正是這麼做了
解決方案:
1.依情況及條件判斷去refresh即可
2.減少文字判斷、或將Contents的圖片顯示(如Icon)改為Sprite
- 遊戲視窗太小,沒辦法自由縮放
VX與VA預設雖然有提供,但是最大為640*480
解決方案:
1.如果作業系統是w10,則可以在顯示設定的"縮放與版面配置",設定應用程式大小
100% = 640*480
125% = 800*600
150% = 960*720...以此類推,又或者是降低解析度至800*600也可以
如果編輯軟體的介面大小太小,也可以靠這樣來放大
2.外部腳本
XP:Drago - Custom Resolution II、XP Ace Tilemap(兩者皆會降低效能)
VX、VA:Fullscreen++
目前就以上這10個,未來可能還會繼續增加
最後附上截圖,結束這回合
由於第二章節的需要,所以製作了可開關的手電筒效果
回饋上有人說明希望能對火鶴有多一點了解,所以對過去的主線劇情做了一定程度上的修改
盡量會在暑假那時釋出第二章,可能的話(?