国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Undertale Engine/Kristal類游戲漢化思路

2023-07-22 02:09 作者:AX暗星233  | 我要投稿

(本文基于MarkDown格式撰寫,使用的符號不做刪改,不影響閱讀)


# Undertale Engine游戲漢化思路


> Undertale Engine (UTE)一般指的是糖萌蘆于 2018 年 8 月開發(fā)的 Undertale 游戲制作模板。使用者需要使用 GameMaker 加載模板工程進(jìn)行開發(fā)。

>

> 該模板包含了主世界和戰(zhàn)斗功能,同時包含了多個方便開發(fā)的工具,例如 Anim 緩動系統(tǒng)、Console 調(diào)試控制臺等。

>

> 目前 Undertale Engine 只進(jìn)行功能性維護(hù),將不再得到更新。?

——摘自[UT社區(qū)維基(UTCWIKI)](https://utcwiki.com/Undertale_Engine)


關(guān)于UTE游戲的漢化,之前已經(jīng)有人提供方法了,在這個視頻中,@憨憨羊の宇航鴿鴿 講到了ute游戲漢化字體內(nèi)嵌的方法


這里我以內(nèi)嵌和外置字體的方法進(jìn)去字體的替換

一樣的,我們需要utmt來打開data,別搞丟了喲


## 內(nèi)嵌字體


這里以fdy的困難杉為例子(抱歉屯的ute游戲很少)


典型的UTE游戲一般都有bin,locale文件夾(其中l(wèi)ocale文件夾是放語言文件的地方。制作者通常不會全把文本寫在那里,只是部分會需要。所以文本方面記得多看看data里面的strings欄喲)


我們用utmt打開data.win,進(jìn)行字體內(nèi)嵌




我們搜索text,找到`gml_Object_text_typer_Other_15`,如圖所示

大概長這樣

你會發(fā)現(xiàn)右邊有好多橙色黃色

我們先看黃色的是什么

如果你在`"locale\english\string"`這個文件夾,打開**font.txt**,發(fā)現(xiàn)左邊**雙引號的字符串跟上面圖中黃色的一模一樣**(這里是得到該txt的字符串,相關(guān)變量會進(jìn)行識別,這里不多講)

猜猜看是什么文本編輯器()

這里我們是內(nèi)嵌字體,那就內(nèi)嵌咯。使出你的ImportFontData.csx,導(dǎo)入字體


導(dǎo)入完了,那我們怎么讓游戲用到我們導(dǎo)入的字體呢?

沒錯,這也就是我要你打開那個代碼的目的:把原來使用的字體換了


這里我導(dǎo)入的字體為:`fnt_comicsans`,`fnt_maintext`,`fnt_plain`,分別對應(yīng) sans、主世界、怪物說話字體

老三樣?

這里我們把第一個字體為sans字體,對應(yīng)文本中的{font 3}

然后我們改為下面的

以此類推,我們把其他的[4,0],[4,1],[5,0],[5,1]分別改為主世界,怪物說話字體(其實這里作者已經(jīng)內(nèi)置相關(guān)的英文字體,不過這里只是舉例)

點擊代碼外部保存,你會發(fā)現(xiàn)那些字體名都變成了數(shù)值(utmt特性罷了,不用擔(dān)心)


附圖:gml_Object_text_typer_Other_15中 scale_x,scale_y,space_x,sapce_y形象區(qū)分

至此完成了字體的使用


翻譯文本時切換字體應(yīng)為: {font +**_group_font[]數(shù)組的第一個數(shù)**},比如我這里sans的為`{font 3}`,主世界的為`{font 4}`


要不我們試試看?


這是開頭殺前的一段話:

稍微修一下:

我們保存看一下效果:

這里再把它換成主世界字體看看({font 3}改為{font 4}):

之后就自己去翻譯啦,你已經(jīng)學(xué)會內(nèi)嵌字體了!ヾ(≧▽≦*)o



##外置字體(消除抗鋸齒)


其實外置字體也沒什么可講的,只要把對應(yīng)Lang的字體文件換一換,ini文件里參數(shù)換一換,就基本上ok的了


不巧的是,當(dāng)你把字體換上,并且把字體大小改了之后,進(jìn)入游戲看,字體居然是糊的!

啊啊啊啊啊啊啊啊啊啊啊要死了要死了!?。。。?!


別急,下面就是消除抗鋸齒的方法


還是utmt打開data.win,搜索text找到`gml_Object_text_typer_Other_15`


你可能會好奇:_group_font[]的右值 Lang_GetFont()是什么?


問到點上了。這是一個函數(shù),用來獲取外部字體資產(chǎn)的值(簡單點說就是這個函數(shù)來讀外部的字體的,當(dāng)然僅限ute,因為這是作者(指tml)自己寫的 而非gm內(nèi)置)


那么我們找找唄~


既然這是獲取,那么就得找找讀取這個函數(shù)的腳本(即load)


我們在搜索框搜索lang,相應(yīng)的code欄找到 `gml_Script_Lang_LoadFont` 這段代碼

我們重點關(guān)注30行之后的。我們來看到37行,發(fā)現(xiàn)有個`font_add()`函數(shù)哎


什么?你不知道這是什么?那我稍微引用下吧


> 此函數(shù)可用于從**包含的文件**中存在的字體文件向游戲添加字體??梢远x字體的大小 (以點數(shù)表示),以及字體應(yīng)該是粗體還是斜體, 也可以定義要包含的字符范圍。該函數(shù)返回一個index值,該值應(yīng)存儲在變量中,因為在引用此字體的所有其他代碼中都需要此值,或者如果該函數(shù)由于任何原因而失敗,它將返回- 1。

>

> 請注意,字體文件必須是 `*.ttf``*.otf` 文件,對于添加亞洲或阿拉伯字體等非標(biāo)準(zhǔn)字體也很有用。

> ?——[Gamemaker 開發(fā)者之家 翻譯的 GameMaker 用戶手冊](https://github.com/GamemakerChina)


我們在那行下面插入 `font_add_enable_aa(0)` ,并且要給該條件括上花括號,如圖:

自行比較,看看區(qū)別在哪


你:???這又是什么函數(shù)?


> 該函數(shù)可用于對使用`font_add()`添加的字體啟用或禁用抗鋸齒 (AA)。這個函數(shù)需要在添加任何字體之前調(diào)用并將其設(shè)置為true會啟用AA,將其設(shè)置為**false**會禁用它。默認(rèn)情況下,已啟用AA。請注意,這對在調(diào)用函數(shù)之前已經(jīng)添加的字體沒有影響,并且該函數(shù)只需要在添加字體時調(diào)用一次,而不是在使用該字體的每個繪制/步驟。

> ——[Gamemaker 開發(fā)者之家 翻譯的 GameMaker 用戶手冊](https://github.com/GamemakerChina)


簡單點說就是這個函數(shù)來開關(guān)抗鋸齒,0是關(guān),1是開

把它們括一起的原因是要在讀的同時也要關(guān)掉抗鋸齒(如果不是同時那加了也沒用)


保存后看看效果(這里使用主世界字體)


這里可以換種寫法(如果你想讓抗鋸齒可開可關(guān)而不是寫死了關(guān)的話)


28行插入:


```gml

var aa = ini_read_real("font", "aa", 0)

```

相應(yīng)的,`font_add_enable_aa(0)` 改為 `font_add_enable_aa(aa)`

相應(yīng)的,對應(yīng)字體的ini文件加上 `aa = 0`

這里換成1看看字體是否會糊


# Kristal游戲漢化思路


你:?這什么東西


> Kristal is a powerful [Deltarune](https://deltarune.com/) fangame and battle engine, made with [L?VE](https://love2d.org/). Easily play and create custom Deltarune stories, using the [Lua](https://www.lua.org/) scripting language with an accurate battle and overworld engine!

>

> Kristal是基于[L?VE](https://love2d.org/)制作的一個強(qiáng)大的[Deltarune](https://deltarune.com/) fangame和戰(zhàn)斗引擎。使用[Lua](https://www.lua.org/)腳本語言制作精確的戰(zhàn)斗和主世界,輕松游玩和創(chuàng)建自制的Deltarune故事線!

> ——[Kristal官方WIKI](https://github.com/KristalTeam/Kristal/wiki)

>

> L?VE是一個使用 Lua 作為編程語言的 2D 游戲框架。L?VE 完全免費,能用在任何開源項目,或閉源、商業(yè)項目。

> ——[L?VE官方WIKI](https://love2d.org/wiki/Main_Page_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87))


<br>


關(guān)于這類游戲的拆包,我只能說很簡單。因為很多的都是**普通打包**(普通打包:簡單的對資源和源代碼進(jìn)行打包,打包成相應(yīng)平臺的安裝文件),即使是編譯打包,游戲作者也是會提供源代碼的,所以拆的事這點不用擔(dān)心


懶得下源碼就直接把那exe解壓出來就行了

(游戲通??杀嬲J(rèn)為 一個紅藍(lán)背景中間白愛心的程序 帶著一些dll文件。)

解壓喲

字體資源在該文件夾的 **assets\font** 文件夾

你可以把一些字體替換了而且能加入新的字體


我們先把一些原字體換了,比如 `main.ttf``main_mono.ttf`,并在相應(yīng)的json調(diào)字體大小

一般情況下你就在 `defaultSize` 這個鍵調(diào)字體大小就行了

`fallbacks`就是缺字的時候補(bǔ)上的字體(ps:用圖像驅(qū)動的,fallbacks不管用)

這里我用的字體最佳比例為24,那我就調(diào)24(如果需要小一點的同個字體,需要在對應(yīng)代碼調(diào)參數(shù))

不過這樣還是看不出變化的,我們需要修改一下才能看到效果

沒變化...

我們根據(jù)這界面的文字來找找好了。發(fā)現(xiàn)在 `src\engine\ment\menu.lua` ,然后稍微翻一翻

修改后

再把文件導(dǎo)進(jìn)去exe里(你就用解壓軟件打開exe 找到lua文件相應(yīng)位置 拖進(jìn)去就行了)(對了那些字體文件,json也要拖到相應(yīng)位置)

拖拖你的
修改后


怪物說話的字體(plain)怎么辦?它可是圖片哎

我能想到的是:創(chuàng)建新字體,因為中文需要ttf(

比如我新字體為plain_cn,把ttf文件和json文件放進(jìn) `assets\fonts` 文件夾,然后我們來到`src\engine\game\battle\ui\speechbubble.lua`


`Assets.getFont()`,`Assets.getFontData()` 里面的 **plain** 改成 **plain_cn** ,也就是那個新字體,然后拖進(jìn)去看看

如有必要,`DialogueText()` 里面的 `font= "plain"` 改為`font = "plain_cn"`

效果如圖


下面講下修改非 `defaultSize` 控制的字體大小

如圖,這個字體大小很大,肯定不是給出的24

這里我們搜一下,找到大寫的fps,發(fā)現(xiàn)在 `"src\engine\overlay.lua"`,看到這行:

看到?jīng)]?32!

改,都可以改(這里改成12,順便調(diào)了下位置,體現(xiàn)差距)。改完之后拖進(jìn)exe,如圖:

目前遇到的情況目前就這么多

當(dāng)然也會有拖進(jìn) `assets\fonts` 還會有問題的情況

那就把字體拖進(jìn) `mods\[游戲名]\assets\fonts` 文件夾里,總之這個不是沒就是有了


至此,我能夠說的思路目前就這么多,希望對你能有所幫助

如有疑問或錯漏的地方,請指出來,畢竟我不是專業(yè)的

如有問題,可以在該q群里問:238552588


Undertale Engine/Kristal類游戲漢化思路的評論 (共 條)

分享到微博請遵守國家法律
西畴县| 务川| 伊金霍洛旗| 金华市| 安仁县| 沙雅县| 二连浩特市| 深泽县| 金寨县| 新余市| 巴南区| 泸水县| 乌苏市| 皮山县| 嘉义市| 万山特区| 大关县| 岗巴县| 屯门区| 庄浪县| 工布江达县| 苗栗县| 祥云县| 阿拉善左旗| 钟山县| 西峡县| 丹阳市| 井陉县| 察隅县| 新丰县| 高邮市| 酉阳| 大理市| 榆树市| 洛浦县| 肇源县| 广河县| 岳阳市| 武强县| 湘阴县| 吉首市|