RPG Maker VX Ace กับภาษาไทย
RPG Maker นี่ เป็นซอฟต์แวร์สร้างเกมอย่างง่ายที่อยู่คู่กับปัญหาภาษาไทยมานานแล้ว ตั้งแต่ครั้งอดีตกาลที่ไปลงเครื่อง Super Famicom ก็ใช้ไม่ได้แหงอยู่แล้ว จนมาเป็น PC ก็ต้องมีคนหาทางพลิกแพลงดัดแปลงฟอนต์ แฮ็คโปรแกรมจนใช้ได้ แม้จะยังมีข้อจำกัดมากมาย แต่ตอนนั้นถึงกับมีนิตยสารในไทยจัดประกวดเขียนเกมด้วย RPG Maker เลยนะ...
จนมาถึง พ.ศ. นี้ RPG Maker พัฒนาเป็นเวอร์ชั่น VX Ace มันก็ยังมีปัญหาภาษาไทยอยู่ดี แต่ด้วยความยืดหยุ่นของระบบ script ทำให้งวดนี้แค่เพิ่ม script นิดหน่อยก็ใช้ภาษาไทยได้แล้ว ซึ่งถ้าหาในอินเทอร์เน็ตจะไม่เจอ "วิธี" แต่กลับเจอ "ไฟล์" ให้ก็อปไปทับซะมากกว่า ส่วนเว็บที่บอก "วิธี" ก็รวบรวมไว้ไม่ครบ ต้องไปหาจากบล็อกและเว็บบอร์ดต่าง ๆ หลายที่ถึงจะสมบูรณ์ ผมก็เลยรวบรวมมาไว้ที่บล็อกตัวเองซะเลย!! .... นี่แหละ
อ้อ บล็อกนี้ไม่สนับสนุนของเถื่อน ดังนั้นไม่มีตัวเต็มแจกให้ใด ๆ ทั้งสิ้นครับ... ถ้าอุดหนุนของแท้ได้อุดหนุนเถอะครับ อย่างน้อยก็ได้บุญจากการช่วยปากท้องผู้พัฒนา 😇
ครับ.. สี่เหลี่ยมหมดเลยครับ แย่ยิ่งกว่าภาษาต่างดาวอีก แล้วจะแก้ยังไง? ถามได้ ก็เปลี่ยนฟอนต์สิครับ!!
เริ่มจากเข้าไปที่เมนู Tools > Script Editor... (หรือกด F11) แล้วไปที่ Main ที่อยู่ล่างสุดดังภาพ...
จากนั้นแทรกโค้ดไปก่อน rgss_main ดังนี้
Font.default_name = ["ชื่อฟอนต์"]
Font.default_size = ขนาดฟอนต์
แค่นี้แหละครับ โดยชื่อฟอนต์ต้องเป็นชื่อฟอนต์แบบที่เห็นตอนเลือกฟอนต์นั่นละ ส่วนขนาดก็ต้องจูนหากันเอาเองว่าขนาดเท่าไหร่จะเหมาะสม เพราะถ้าเล็กไปอาจจะแยกสระอิกับไม้หันอากาศไม่ออก ใหญ่ไปก็อาจทำให้พวกวรรณยุกต์หลุดขอบได้ และเมื่อลองแก้ฟอนต์แล้วรันเกมดู...
และนี่คืออีกหนึ่งปัญหา.. สระกับวรรณยุกต์ปลิวซะงั้น!! ทำให้เราต้องเพิ่ม script อีกตัวเพื่อจัดให้มันเข้าที่เข้าทางครับ
ยังอยู่ที่ Script Editor คราวนี้เลื่อนขึ้นมาที่หัวข้อ Materials แล้วคลิกขวาตรง ( Inset here ) แล้วเลือกคำสั่ง Insert
จะเกิดช่องว่างขึ้นมาพร้อมหน้า script ว่าง ๆ ให้พิมพ์ชื่อ script ตรงช่อง Name แล้วเอา script ต่อไปนี้ไป paste ลงที่ว่างทางขวา
#==============================================================================
# ** Message Thai Vovel and Outline Fix
#------------------------------------------------------------------------------
# By : Admannon
#==============================================================================
#==============================================================================
# ** Window Base
#==============================================================================
class Window_Base < Window
@@thai_vovel = "ัิีึื่้๊๋็์ุูํฺ"
#--------------------------------------------------------------------------
# * Preconvert Control Characters
#--------------------------------------------------------------------------
alias thai_fix_convert_escape_characters convert_escape_characters unless $@
def convert_escape_characters(text)
result = thai_fix_convert_escape_characters(text).clone
result.gsub!(/ำ/) { "ํา" }
result
end
#--------------------------------------------------------------------------
# * Normal Character Processing
#--------------------------------------------------------------------------
def process_normal_character(c, pos)
text_width = text_size(c).width
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
pos[:x] += text_width unless @@thai_vovel.include?(c)
end
end
#==============================================================================
# ** Bitmap
#==============================================================================
class Bitmap
alias outline_fix_draw_text draw_text unless $@
def draw_text(*args)
s = text_size(" ").width
a = args.size - (args[args.size - 1].is_a?(String) ? 1 : 2)
args[a] = " " + args[a].to_s
if args[0].is_a?(Rect)
args[0].x -= s
args[0].width += s
else
args[0] -= s
args[2] += s
end
outline_fix_draw_text(*args)
end
end
ย้ำกันอีกที script นี้เป็นฝีมือของคุณ Admannon จากบอร์ด irpg.in.th ครับ อย่าลืมให้เครดิตเขาล่ะ (ไม่รู้เขาขอเครดิตรึเปล่า แต่ให้ ๆ ไปเถอะ) แล้วก็ลองรันดู...
ผลจากการใส่ script จะเห็นว่าสระไม่ลอยไปไหนแล้ว แต่จะมีปัญหาวรรณยุกต์ซ้อนกับสระอยู่ (สังเกตคำว่า ที่นี่นั้น) นี่เป็นผลจากการใช้ฟอนต์ Cordia New ซึ่งฟอนต์ที่ติดมากับ Windows 7 และ 8 จะเป็นงี้กันทุกฟอนต์ เขาว่ากันว่าให้ไปเอาฟอนต์จาก XP มาลงทับจะแก้ได้ แต่ผมไม่แนะนำให้ทำ และอย่าไปแนะนำให้คนอื่นทำ เพราะการเอาไฟล์จากระบบปฏิบัติการเก่าไปทับระบบใหม่อาจมีปัญหาตามมา จึงไม่ใช่เรื่องที่ทุกคนจะเต็มใจทำ และอาจพาลไม่อยากเล่นเกมคุณได้
แล้วจะแก้ยังไง? ไปหาฟอนต์ใหม่ครับ
Circular ขนาด 24 เป็นฟอนต์ที่อ่านยากหน่อย แต่ลงตัวที่สุดในสายตาผม
Arundina Sans ขนาด 24 หนึ่งในฟอนต์แห่งชาติ
แล้วฟอนต์จะอ่านง่ายขึ้นหน่อย ดังนี้..
Circular ตัวหนา ขนาด 24 ... พอหนาแล้วลงตัวทีเดียว
TH Sarabun New ตัวหนา ขนาด 28 (ใช้ 26 ก็ได้) ฟอนต์ยอดฮิต ชัดเจนดี
เนื่องจาก RPG Maker VX Ace จะเร็นเดอร์ฟอนต์ด้วยความละเอียดค่อนข้างต่ำ ทำให้บางทีพิกเซลขาด ๆ หาย ๆ แล้วฟอนต์บางตัวจะเปลี่ยนหน้าตาไปเลย (เช่น Arundina ข้างบนนู่น) ส่วนหนึ่งเป็นเพราะมีการเพิ่ม "เส้นขอบ" ให้ตัวอักษรด้วยครับ หากไม่อยากให้มีเส้นขอบ ก็เพิ่มคำสั่งนี้ลงไป (ที่ไหน? คงไม่ต้องบอกนะ ที่เดิม ๆ น่ะ)
แต่ถ้าไม่มีเส้นขอบอาจจะกลืนกับพื้นหลัง อ่านยาก ก็ให้ใส่เงาโดยเพิ่มคำสั่งนี้
บางฟอนต์ที่ขาด ๆ เกิน ๆ อาจจะกลับมาใช้การได้แล้วล่ะทีนี้
ปัญหาต่อมาคือ คุณจะเอาฟอนต์ไปลงเครื่องคนเล่นได้ยังไง? วิธีที่เซฟที่สุดคือ ตอนโพสต์แจกเกมก็โพสต์ลิ้งค์ของฟอนต์นั้น (ในกรณีของ f0nt.com ควรโพสต์หน้าของฟอนต์นั้น อย่าโพสต์ลิ้งค์โหลดโดยตรงนะ) ให้คนเล่นไปโหลดมาติดตั้งก่อนด้วยเลย
หรืออีกวิธีคือ ให้สร้างโฟลเดอร์ Fonts (มี s ต่อท้ายนะ) ในโปรเจ็คของคุณ แล้วก็อปปี้ไฟล์ฟอนต์ลงไปในนั้น (แบบที่แตกไฟล์แล้วนะ ไม่ใช้ใส่ไปทั้ง zip ทั้ง rar) แล้ว RPG Maker VX Ace จะมองเห็นฟอนต์นั้นได้โดยไม่ต้องติดตั้ง
แต่... บางฟอนต์จะมีสัญญาอนุญาตที่ห้ามไม่ให้แจกจ่ายฟอนต์ไปกับโปรแกรมครับ (ถึงมันจะแจกฟรีก็ตาม) ถ้าเจ้าของฟอนต์กล้าพอ อาจจะฟ้องเราดื้อ ๆ ได้ อันนี้เป็นเรื่องโคตรปวดหัวของการใช้ฟอนต์ในเกมที่หลายคนไม่เคยคิดถึงมาก่อนทีเดียว...
สำหรับวันนี้จบแค่นี้ แต่เรื่องภาษาไทยกับ RPG Maker VX Ace ยังไม่จบ ไม่เชื่อลองรันเกมดูสิ (ฉากต่อสู้น่ะ ชัดเลย) ถ้ดไป เราจะไปต่อเรื่องการแปล
จนมาถึง พ.ศ. นี้ RPG Maker พัฒนาเป็นเวอร์ชั่น VX Ace มันก็ยังมีปัญหาภาษาไทยอยู่ดี แต่ด้วยความยืดหยุ่นของระบบ script ทำให้งวดนี้แค่เพิ่ม script นิดหน่อยก็ใช้ภาษาไทยได้แล้ว ซึ่งถ้าหาในอินเทอร์เน็ตจะไม่เจอ "วิธี" แต่กลับเจอ "ไฟล์" ให้ก็อปไปทับซะมากกว่า ส่วนเว็บที่บอก "วิธี" ก็รวบรวมไว้ไม่ครบ ต้องไปหาจากบล็อกและเว็บบอร์ดต่าง ๆ หลายที่ถึงจะสมบูรณ์ ผมก็เลยรวบรวมมาไว้ที่บล็อกตัวเองซะเลย!! .... นี่แหละ
เกริ่นนำ (อ้าว ไอ้ข้างบนไม่ใช่รึ?)
ก่อนอื่นต้องขอบอกก่อนว่า บทความที่ท่านกำลังจะได้อ่านต่อไปนี้จะเป็นการ "สอนวิธีตกปลา" มากกว่าเอาปลายื่นให้ดื้อ ๆ นะครับ นั่นคือไม่มีอะไรสำเร็จรูปให้คุณ อยากได้ต้องใส่ script เอง ว่างั้นแหละ โดยเป็นวิธีที่ใช้ได้กับ RPG Maker VX Ace ที่ขายอยู่ใน Steam หรือใครที่สอยจาก Humble Weekly Bundle เมื่อกลางปีมาดองไว้ (แค่จ่าย $1 ก็ได้มาแล้ว) ก็อันเดียวกันแหละ ใครยังไม่มี ซื้อจาก Steam ตอนนี้ก็พันกว่า ๆ แต่ถ้ารอลดราคา (อีกไม่นานนี้ หรือพลาดไปก็เห็นกลับมาลดอยู่ทุกเทศกาลแหละ) ก็จะเหลือ 300 กว่าบาท (รอลดสัก 75%) ช่วงรอลดก็เอา RPG Maker VX Ace Lite ที่แจกฟรีมาลองเล่นก่อนก็ได้ แต่ทำให้รองรับภาษาไทยไม่ได้นะ เพราะมันไม่ให้แก้ script (วิธีแก้ให้รุ่น Lite ใช้ script ได้ไม่มี ต้องจัดตัวเต็มเท่านั้น)อ้อ บล็อกนี้ไม่สนับสนุนของเถื่อน ดังนั้นไม่มีตัวเต็มแจกให้ใด ๆ ทั้งสิ้นครับ... ถ้าอุดหนุนของแท้ได้อุดหนุนเถอะครับ อย่างน้อยก็ได้บุญจากการช่วยปากท้องผู้พัฒนา 😇
STEP 1 - เปลี่ยนฟอนต์
ปัญหาของภาษาไทยใน RPG Maker VX Ace ก็มีอยู่ 2 อย่างครับ หนึ่งคือ default font ไม่รองรับภาษาไทย ทำให้มันออกมาเป็นงี้...ครับ.. สี่เหลี่ยมหมดเลยครับ แย่ยิ่งกว่าภาษาต่างดาวอีก แล้วจะแก้ยังไง? ถามได้ ก็เปลี่ยนฟอนต์สิครับ!!
เริ่มจากเข้าไปที่เมนู Tools > Script Editor... (หรือกด F11) แล้วไปที่ Main ที่อยู่ล่างสุดดังภาพ...
จากนั้นแทรกโค้ดไปก่อน rgss_main ดังนี้
Font.default_name = ["ชื่อฟอนต์"]
Font.default_size = ขนาดฟอนต์
แค่นี้แหละครับ โดยชื่อฟอนต์ต้องเป็นชื่อฟอนต์แบบที่เห็นตอนเลือกฟอนต์นั่นละ ส่วนขนาดก็ต้องจูนหากันเอาเองว่าขนาดเท่าไหร่จะเหมาะสม เพราะถ้าเล็กไปอาจจะแยกสระอิกับไม้หันอากาศไม่ออก ใหญ่ไปก็อาจทำให้พวกวรรณยุกต์หลุดขอบได้ และเมื่อลองแก้ฟอนต์แล้วรันเกมดู...
และนี่คืออีกหนึ่งปัญหา.. สระกับวรรณยุกต์ปลิวซะงั้น!! ทำให้เราต้องเพิ่ม script อีกตัวเพื่อจัดให้มันเข้าที่เข้าทางครับ
STEP 2 - เพิ่ม script แก้สระลอย
สำหรับ script แก้สระลอย (หรือปลิว) นี้ เป็นฝีมือของคุณ Admannon จากบอร์ด irpg.in.th ครับยังอยู่ที่ Script Editor คราวนี้เลื่อนขึ้นมาที่หัวข้อ Materials แล้วคลิกขวาตรง ( Inset here ) แล้วเลือกคำสั่ง Insert
จะเกิดช่องว่างขึ้นมาพร้อมหน้า script ว่าง ๆ ให้พิมพ์ชื่อ script ตรงช่อง Name แล้วเอา script ต่อไปนี้ไป paste ลงที่ว่างทางขวา
#==============================================================================
# ** Message Thai Vovel and Outline Fix
#------------------------------------------------------------------------------
# By : Admannon
#==============================================================================
#==============================================================================
# ** Window Base
#==============================================================================
class Window_Base < Window
@@thai_vovel = "ัิีึื่้๊๋็์ุูํฺ"
#--------------------------------------------------------------------------
# * Preconvert Control Characters
#--------------------------------------------------------------------------
alias thai_fix_convert_escape_characters convert_escape_characters unless $@
def convert_escape_characters(text)
result = thai_fix_convert_escape_characters(text).clone
result.gsub!(/ำ/) { "ํา" }
result
end
#--------------------------------------------------------------------------
# * Normal Character Processing
#--------------------------------------------------------------------------
def process_normal_character(c, pos)
text_width = text_size(c).width
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
pos[:x] += text_width unless @@thai_vovel.include?(c)
end
end
#==============================================================================
# ** Bitmap
#==============================================================================
class Bitmap
alias outline_fix_draw_text draw_text unless $@
def draw_text(*args)
s = text_size(" ").width
a = args.size - (args[args.size - 1].is_a?(String) ? 1 : 2)
args[a] = " " + args[a].to_s
if args[0].is_a?(Rect)
args[0].x -= s
args[0].width += s
else
args[0] -= s
args[2] += s
end
outline_fix_draw_text(*args)
end
end
ย้ำกันอีกที script นี้เป็นฝีมือของคุณ Admannon จากบอร์ด irpg.in.th ครับ อย่าลืมให้เครดิตเขาล่ะ (ไม่รู้เขาขอเครดิตรึเปล่า แต่ให้ ๆ ไปเถอะ) แล้วก็ลองรันดู...
ผลจากการใส่ script จะเห็นว่าสระไม่ลอยไปไหนแล้ว แต่จะมีปัญหาวรรณยุกต์ซ้อนกับสระอยู่ (สังเกตคำว่า ที่นี่นั้น) นี่เป็นผลจากการใช้ฟอนต์ Cordia New ซึ่งฟอนต์ที่ติดมากับ Windows 7 และ 8 จะเป็นงี้กันทุกฟอนต์ เขาว่ากันว่าให้ไปเอาฟอนต์จาก XP มาลงทับจะแก้ได้ แต่ผมไม่แนะนำให้ทำ และอย่าไปแนะนำให้คนอื่นทำ เพราะการเอาไฟล์จากระบบปฏิบัติการเก่าไปทับระบบใหม่อาจมีปัญหาตามมา จึงไม่ใช่เรื่องที่ทุกคนจะเต็มใจทำ และอาจพาลไม่อยากเล่นเกมคุณได้
แล้วจะแก้ยังไง? ไปหาฟอนต์ใหม่ครับ
STEP 3 - คัดเลือกและปรับแต่งฟอนต์
โชคดีที่ภาษาไทยเรามีฟอนต์แจกฟรีให้หามาใช้ได้เยอะแยะที่ f0nt.com และต่อไปนี้เป็นตัวอย่างฟอนต์...Circular ขนาด 24 เป็นฟอนต์ที่อ่านยากหน่อย แต่ลงตัวที่สุดในสายตาผม
อ้อ ลืมบอกไปอย่าง ว่าคุณสามารถเปลี่ยนฟอนต์เป็นตัวหนาได้ด้วย โดยกลับไปที่ Main ที่ใส่โค้ดเปลี่ยนฟอนต์ตะกี้ แล้วเพิ่ม Font.default_bold = true ลงไป ดังภาพ...
แล้วฟอนต์จะอ่านง่ายขึ้นหน่อย ดังนี้..
Circular ตัวหนา ขนาด 24 ... พอหนาแล้วลงตัวทีเดียว
TH Sarabun New ตัวหนา ขนาด 28 (ใช้ 26 ก็ได้) ฟอนต์ยอดฮิต ชัดเจนดี
เนื่องจาก RPG Maker VX Ace จะเร็นเดอร์ฟอนต์ด้วยความละเอียดค่อนข้างต่ำ ทำให้บางทีพิกเซลขาด ๆ หาย ๆ แล้วฟอนต์บางตัวจะเปลี่ยนหน้าตาไปเลย (เช่น Arundina ข้างบนนู่น) ส่วนหนึ่งเป็นเพราะมีการเพิ่ม "เส้นขอบ" ให้ตัวอักษรด้วยครับ หากไม่อยากให้มีเส้นขอบ ก็เพิ่มคำสั่งนี้ลงไป (ที่ไหน? คงไม่ต้องบอกนะ ที่เดิม ๆ น่ะ)
Font.default_outline = false
แต่ถ้าไม่มีเส้นขอบอาจจะกลืนกับพื้นหลัง อ่านยาก ก็ให้ใส่เงาโดยเพิ่มคำสั่งนี้
Font.default_shadow = true
ปัญหาต่อมาคือ คุณจะเอาฟอนต์ไปลงเครื่องคนเล่นได้ยังไง? วิธีที่เซฟที่สุดคือ ตอนโพสต์แจกเกมก็โพสต์ลิ้งค์ของฟอนต์นั้น (ในกรณีของ f0nt.com ควรโพสต์หน้าของฟอนต์นั้น อย่าโพสต์ลิ้งค์โหลดโดยตรงนะ) ให้คนเล่นไปโหลดมาติดตั้งก่อนด้วยเลย
หรืออีกวิธีคือ ให้สร้างโฟลเดอร์ Fonts (มี s ต่อท้ายนะ) ในโปรเจ็คของคุณ แล้วก็อปปี้ไฟล์ฟอนต์ลงไปในนั้น (แบบที่แตกไฟล์แล้วนะ ไม่ใช้ใส่ไปทั้ง zip ทั้ง rar) แล้ว RPG Maker VX Ace จะมองเห็นฟอนต์นั้นได้โดยไม่ต้องติดตั้ง
แต่... บางฟอนต์จะมีสัญญาอนุญาตที่ห้ามไม่ให้แจกจ่ายฟอนต์ไปกับโปรแกรมครับ (ถึงมันจะแจกฟรีก็ตาม) ถ้าเจ้าของฟอนต์กล้าพอ อาจจะฟ้องเราดื้อ ๆ ได้ อันนี้เป็นเรื่องโคตรปวดหัวของการใช้ฟอนต์ในเกมที่หลายคนไม่เคยคิดถึงมาก่อนทีเดียว...
สรุป - การทำให้ RPG Maker VX Ace รองรับภาษาไทย
เผื่อบางคนเห็นว่าข้างบนยาวไปไม่อ่าน หรือเวลาน้อย ก็ขอสรุปวิธีโดยย่อดังนี้..- เปิด Script Editor
- ไปที่ Main แล้วเพิ่มโค้ด Font.default_name = ["ชื่อฟอนต์"] และ Font.default_size = ขนาดฟอนต์ ก่อน rgss_main
- คลิกขวาที่ ( Insert here ) เลือก Insert แล้วก็อปโค้ดแก้สระลอย (ไอ้กลุ่มตัวอักษรเขียว ๆ ข้างบน) ลงไป
- เฟ้นหาฟอนต์ที่ลงตัว ไม่แนะนำฟอนต์ที่มากับวินโดวส์ (พวก New UPC Tahoma Microsoft Sans Serif) ไปหาที่ f0nt.com
- เราสามารถแนบฟอนต์ไปกับเกมโดยผู้เล่นไม่ต้องติดตั้ง โดยการสร้างโฟลเดอร์ Fonts (มี s) ในโฟลเดอร์ของตัวเกมแล้วก็อปไฟล์ฟอนต์ลงไป
- ฟอนต์บางตัวแม้จะแจกฟรี แต่ไม่อนุญาตให้แนบไปกับโปรแกรม โปรดระวัง!
- เคล็ดลับอื่น ๆ อยู่ในบทความยาว ๆ ข้างบน อยากได้ก็ไปอ่านซะ!!
สำหรับวันนี้จบแค่นี้ แต่เรื่องภาษาไทยกับ RPG Maker VX Ace ยังไม่จบ ไม่เชื่อลองรันเกมดูสิ (ฉากต่อสู้น่ะ ชัดเลย) ถ้ดไป เราจะไปต่อเรื่องการแปล
ตอนต่อไป : RPG Maker VX Ace กับการแปลไทย ->
ขอบคุณมากๆครับ
ตอบลบสารมาถ เอาสคบิปนี้ไปใช้ในเกมที่จะสร้างขายได้ไหมครับ
ตอบลบ