|
|
本帖最後由 cse3221 於 2026-6-15 10:55 編輯
最近突然想玩玩 PC 伊蘇7的Steam版,可是中文化Mod 只有簡體版,看著難受
研究了一下簡體版是有一個字體檔的,直接換別的字體行不通,於是盧了Gemini 半天,
讓AI幫我想辦法把那個簡體字型檔的簡體字轉成繁體,結果最後AI丟了個Python程式給我
沒想到真的轉成功了,稍微玩了一下應該沒問題.
遊戲MEGA 載點
來瞻仰一下神奇的AI寫的Python轉換程式,我是一點都沒學過完全看不懂
import os
from fontTools.ttLib import TTFont
from opencc import OpenCC
# 初始化簡轉繁工具
cc = OpenCC('s2tw')
input_font_path = "font2.otf"
output_font_path = "font2_True_Trad.otf"
print("正在讀取伊蘇7原版字體...")
font = TTFont(input_font_path)
# 獲取字體內部的 Unicode 映射表 (cmap)
cmap_tables = font['cmap'].tables
glyph_set = font.getGlyphSet()
print("開始分析字體映射...")
# 建立一個全字體的「字元 -> 字形名稱」對照表
char_to_glyph = {}
for table in cmap_tables:
for code, glyph_name in table.cmap.items():
try:
char_to_glyph[chr(code)] = glyph_name
except:
continue
print("正在進行暴力字形調包...")
success_count = 0
# 遍歷所有的映射表,強制把簡體字的格子,指向繁體字的造型
for table in cmap_tables:
for code, glyph_name in list(table.cmap.items()):
try:
current_char = chr(code)
# 將當前這個位置的字轉成繁體
trad_char = cc.convert(current_char)
# 如果轉出來的繁體字,在字體裡有對應的精美字形
if trad_char != current_char and trad_char in char_to_glyph:
trad_glyph_name = char_to_glyph[trad_char]
# 核心暴力調包:讓遊戲呼叫簡體字碼時,指引去讀取繁體字的造型資料
table.cmap[code] = trad_glyph_name
success_count += 1
except:
continue
print("正在儲存新字體...")
font.save(output_font_path)
print("【大功告成】成功強制重新映射 %d 個字元!產出:%s" % (success_count, output_font_path))
Win11 玩的時候記得要把 YS7.exe 的相容性設定一下,不然畫面會過大
|
評分
-
查看全部評分
|