forum

[How to] ทำ custom menu title [Obsolated]

posted
Total Posts
15
Topic Starter
illuminist
!!! WARNING !!!
เนื่องจากการอัพเดต osu! ในช่วงเดือน มิถุนายา 2012 เป็นผลทำให้เนื้อหาในกระทู้นี้ไม่สามารถใช้การได้อีกต่อไป
ดังนั้นผมจะแจ้งทำการล็อคกระทู้นี้ไว้
สำหรับวิธีการเปลี่ยน Title ที่ถูกเปลี่ยนใหม่นั้นคือผู้เล่นจะต้องเป็น Supporter ของ osu! เท่านั้น



สวัสดีครับ how to รอบนี้ก็จะเป็นเรื่องของการเปลี่ยนหน้าจอไตเติ้ลเมนูของเกม ซึ่งผลที่จะออกมาก็จะเป็นประมาณนี้



สำหรับเครดิตที่จะให้ตัวโตๆเลยก็คือ S i R i R u อีกแล้วครับ :D

เพื่อไม่ให้เป็นการเสียเวลา ดังนั้นเราจะมาเริ่มขั้นตอนแรกกันครับ คือการเตรียมรูปภาพที่ต้องการจะให้เป็น bg

โดยรูปภาพที่ผมจะเลือกใช้คือ รูปนี้




แล้วก็จะเข้าไปยัง Photoshop (หรืออาจจะเป็น GIMP ก็ได้ถ้าใครสนับสนุน open source ;) ) และจากนั้นก็ให้ตัดรูปให้โปร่งใสตรงจุดที่ตรงกับปุ่มบนเมนู หรือจุดอื่นๆที่ต้องการให้ทะลุจนเห็นด้านหลัง อย่างผมจะตัดออกเป็นแบบนี้


(ตารางสี่เหลี่ยมขาวดำหมายถึงพื้นที่ที่โปร่งใสครับ เผื่อใครไม่รู้)

หลักการของมันก็คือเหมือนกับการเอาชั้นของกระดาษมาวางทับกัน โดยที่แผ่นบนคือรูปที่เราเพิ่งตัดบางส่วนออก และแผ่นล่างเป็นหน้าของ osu! ครับ ดูภาพประกอบ


สำหรับวิธีการตัดนั้นก็แล้วแต่คนเลยครับ ไม่เหมือนกัน ผมจะขอไม่อธิบายนะครับ ยกเว้นว่าจะมีคนมาขอวิธีมากๆหน่อยผมก็จะเขียนให้ครับ

อ้อ.. แล้วก็ขนาดของรูปนะครับ แนะนำว่าควรเป็น 1024*768 นะครับ แต่ขนาดอื่นก็ยังไม่ได้ลองทำเหมือนกัน ถ้าใครลองแล้วผลเป็นยังไงก็มาบอกด้วยนะครับ ;)

SPOILER
คาดว่าสำหรับจอขนาดอื่นโดยเฉพาะ Wide Screen ให้ไปดูในเกมว่าตัวเกมใช้ Resolution ขนาดเท่าไหร่ และก็ใช้ resolution นั้นมาใช้ในการทำภาพ title ครับ

จากนั้นก็เซฟเป็นไฟล์ .png ชื่อไฟลอะไรก็ได้ครับ ยกเว้นชื่อ title.png แล้วเซฟไปเก็บไว้ที่โฟลเดอร์ C:\Program Files\osu!\data ครับ อาจจะเป็นโฟลเดอร์อื่นก็ได้สำหรับคนที่เลือกติดตั้งไว้ที่อื่น


แล้วก็มาถึงขั้นตอนที่สองนะครับ คือการแปะรูปภาพเข้าไปในตัวเกม โดยเข้า Notepad ครับ และพิมพ์ลงไปว่า
start osu!.exe
ping localhost -n 6
copy .\data\_title.png .\data\title.png /y

มีจุดที่จะต้องเปลี่ยนบางจุดอย่าง ping localhost เลขตรงที่ -n อาจจะเปลี่ยนเป็นเลขอื่นที่มากกว่าครับ บรรทัดนี้จะใช้ในการหน่วงเวลาก่อนที่จะทำงานในบรรทัดต่อไป ในที่นี้ผมใส่เป็น 6 เพื่อใช้ในการปิงกับเครื่องตัวเอง 6 ครั้ง ซึ่งแต่ละครั้งจะกินเวลาไปประมาณครึ่งวินาที สำหรับคนที่เปิด osu ช้าหน่อยอาจจะเปลี่ยนเป็น 10 หรือ 15 ก็ได้ครับ

และต่อมาคือตรง copy ที่เขียนว่า .\data\_title.png เป็นพารามิเตอร์แรกหมายถึงว่าจะก็อปไฟล์จากไหนครับ ให้เปลี่ยนเป็นตำแหน่งของรูปภาพที่เราเพิ่งเซฟมาจากโพโต้ชอบเมื่อกี้ อย่างเช่นเซฟรูปเป็นชื่อ noumi.png ไว้ในโฟลเดอร์ data เราก็เปลี่ยนเป็น .\data\noumi.png ครับ

พอเปลี่ยนครบหมดแล้วก็เซฟไว้ในโฟลเดอร์เกม osu! เลยครับ โดยที่เลือกเซฟเป็น All file(*.*) และใส่นามสกุล .bat ลงไป เช่น run.bat ครับ

ตัวอย่าง bat ที่อยู่ในเครื่องผมและผมแก้ไว้แล้ว
start osu!.exe
ping localhost -n 8
:: เปลี่ยนค่าหลัง -n ให้มากขึ้นเพราะเครื่องผมเกมเปิดช้า
copy .\data\noumi.png .\data\title.png /y
:: เปลี่ยนจาก .\data\_title.png เป็น .\data\noumi.png เพราะผมเซฟรูปชื่อ noumi.png และเซฟไว้ในโฟลเดอร์ data


พอเสร็จหมดทุกขั้นตอนแล้วก็เริ่มทำการทดสอบด้วยการดับเบิ้ลคลิ๊กที่ไฟล์ bat ที่เราสร้างไว้เมื่อกี้ครับ ถ้าใช้งานได้จะมีหน้าดำๆขึ้นมาแว้บนึง แล้วเกม osu! จะเปิดตามขึ้นมา

สำคัญมาก
ในตอนแรกจะไม่มีรูปไตเติ้ลขึ้นนะครับ ให้เข้าโหมด Solo ครั้งนึงก่อนให้ถึงหน้าเลือกเพลงแล้วออกมา ก็จะมีรูปไตเติ้ลที่เราทำขึ้นโชว์แล้วครับ :)


ต่อยอดกันอีกนิดนึงสำหรับ .bat ไฟล์
ให้เขียน .bat ใหม่ดังนั้น
@echo off
start osu!.exe
ping localhost -n 6 >NUL
copy .\data\_title.png .\data\title.png /y >NUL
โดยเปลี่ยนแปลงบางส่วนตามที่เคยทำมา ตอนที่ขึ้นจอดำจะไม่มีข้อความจากคำสั่งขึ้นตามแล้วครับ :D

ซึ่งไฟล์ bat สามารถสร้างเป็นช็อตคัทไว้เข้าเกมได้เลยครับ

Glossary
Commandที่ใช้บนbat fileหรือ Batch Programming จะเป็นคำสั่งสำหรับ dos ครับซึ่งก็เป็นระบบปฏิบัติการเก่าของไมโครซอฟเอง
ซึ่งจากที่ใช้งานในBatchนี้ผมจะอธิบายความหมายและวิธีใช้งานด้วยละกันเผื่อใครสนใจ

copy

เป็น command สำหรับก็อปปี้ไฟล์จากที่หนึ่งไปอีกที่หนึ่ง
รูปแบบคำสั่งคือ
copy source [destination] [option]
โดยที่ copy คือตัวคำสั่งเอง
source ก็คือสิ่งที่ต้องการจะก็อปปี้
[destination] คือปลายทางว่าจะก็อปปี้ไปไว้ที่ไหน โดยถ้าปลายทางเป็นโฟลเดอร์ก็จะทำการก็อปปี้ไฟล์ต้นทางไปไว้ที่โฟลเดอร์เลย หรือถ้าปลายทางเป็นชื่อไฟล์อื่นก็จะก็อปไฟล์ไปพร้อมกับเปลี่ยนชื่อไฟล์ไปตามปลายทาง
[option] คือตัวเลือกเพิ่มเติมกับคำสั่ง copy นี้ครับ จากที่เขียนมานี้เราได้ใช้ option คือ /y แปลว่า "ก็อปปี้ไปโดยไม่ต้องถามว่าต้องการทับไฟล์เดิมหรือไม่" สำหรับ option อื่นๆของ copy สามารถพิมพ์ลงไปว่า copy /? เพื่อดูเพิ่มเติมได้ครับ

ping
เป็นคำสั่งใช้ตรวจค่า ping จากปลายทาง
รูปแบบคำสั่งคือ
ping target [option]
โดยที่ ping คือตัวคำสั่งเอง
target คือปลายทางที่จะปิงไปหา โดยจากกระทู้ที่เขียนจะเป็น ping localhost ซึ่ง localhost จะหมายถึงเครื่องของเราเอง เหตุผลที่ปิงเครื่องเราเองนั้นก็เพราะจุดประสงค์ของเราตเนนี้จะใช้คำสั่งปิงในการถ่วงเวลาก่อนการ copy การปิงเครื่องเราเองนั้นจะทำได้อย่างรวดเร็วและไม่ต้องการรอการตอบกลับจากเซิฟเวอร์ไกลๆซึ่งจะกินเวลานานและเวลาที่ได้จะไม่แน่นอน
เราสามารถใช้ ping กับเว็ปเซิฟเวอร์หรืออิ่นๆได้อีกชื่อ ping google.com ก็คือปิงเข้าเซิฟเวอร์ของ google หรือ ping 209.85.175.99 ก็จะเป็นการปิงเข้า ip ดังกล่าว (IPนี้ก็เป็นของgoogle.com)
option คือตัวเลือกคำสั่งเช่นกันกับ copy โดยที่เราใช่เมื่อครู่คือ -n 6 หมายถึงให้ทำการปิงเป้าหมายเป็นจำนวน 6 ครั้ง โดยที่การปิงเข้า localhost จะกินเวลาครั้งละประมาณ 1 วินาที ดังนั้น 6 ครั้งก็จะกินเวลาไปประมาณ 6 วินาทีก่อนที่จะทำคำสั่งต่อไป และสามารถดูคำสั่งเพิ่มเติมได้โดยการพิมพ์ ping /?
ปิง(Ping) คือค่าเวลาในการตอบสนองของเซิฟเวอร์ว่าต้องใช้เวลาเท่าไหร่ในการตอบสนองคำสั่งที่เครื่องเราส่งไป โดยที่ค่ายิ่งน้อยก็ยิ่งดี เพราะเวลาที่จะใช้ตอบกลับคำสั่งจากเครื่องเรานั้นน้อยทำให้การติดต่อนั้นเร็วและราบลื่น
start
เป็นคำสั่งใช้ run โปรแกรมแยกออกไป ซึ่งเหตุผลว่าทำไมถึงไม่ใช้ run เกม osu!.exe ตรงๆเลยก็เพราะตัว cmd จะทำการรันโปรแกรมนั้นแต่จะไม่ทำคำสั่งต่อไปจนกว่าจะรันโปรแกรมที่รันเมื่อกี้เสร็จก่อน ก็หมายถึงปิดเกมนั้นเอง แต่เราต้องการก็อปปี้ไฟล์ระหว่างที่เปิดเกมอยู่ คำสั่งนี้จึงจำเป็นครับ
รูปแบบคำสั่งอย่างง่ายคือ
start process
โดยที่ start คือตัวคำสั่งเอง
process คือ โปรแกรมที่เราต้องการรัน
วิธีใช้เพิ่มเติมก็ลองพิมพ์ start /? ครับ


วิธีเปิดและใช้งาน Command Prompt (cmd) เข้า Run แล้วพิมพ์ cmd
ง่ายใช่มั้ย = =

แล้วก็คำสั่งพื่นฐานที่จำเป็นคือ
dir เอาไว้ดูไฟล์และโฟลเดอร์ต่างๆที่ directory ที่อยู่ปัจจุบัน
cd เอาไว้ย้าย directory จากที่หนึ่งไปอีกที่หนึ่ง เช่น cd windows คือเข้าไปที่โฟลเดอร์ window ถ้าชื่อโฟลเดอร์มีเว้นวรรคให้ใส่ฟันหนูคร่อมไปอย่าง cd "Program files" ถ้าจะย้อนกลับไปโฟลเดอร์หนึ่ง ให้พิมพ์ cd .. โดยที่ .. จะหมายถึง directory ที่อยู่เหนือจาก directory ปัจจุบันหนึ่งระดับ
และถ้าอยากจะรันโปรแกรมอะไรซักโปรแกรมก็พิมพ์ชื่อโปรแกรมที่อยู่ในโฟลเดอร์นั้นได้เลย
Cyril Scarlet
ภาพอธิบายนั่น เข้าใจง่ายดีแฮะเ คิวคุง

ทำภาพโชวแบบกำลังวางทับเลยเชียว lol

ปล.แหมะ

regenz
:lol: ว้ายยยยยย พวกโลลิค่อน 555555555

ทำได้แล้วววววววว

Iluhiwizel
^ เมพมาก + +

/me เช็ดเลือดๆ
Keiyaku
ทำได้แล้วขอบคุณมากๆ นะครับ สวยดี

termerys
แล้ว Widescreen หละครับ จะต้องทำยังไง
kaninhot004
ขอบคุณสำหรับวิธีทำครับ
regenz
เมพขิงๆ



thedreamwillnotdie
ขอบคุณครับ
Meko
ผมทำไม่ได้อ่า lol
Cyril Scarlet
(✧≖‿ゝ≖)



Nekomori7339
ทำได้แล้วค่ะ ขอบคุณมากๆนะคะ :oops:





keroro4
ผมทำไมได้อ่ะครับ ช่วยที

ผมเขียนไว้แบบนี้อ่ะครับ


start osu!.exe
ping localhost -n 8
copy .\data\satori.png .\data\title.png /y

(ผมใช้รูปชื่อ satori ครับ)
Nicol 1212
ขอบคุณมากครับ :D

แต่มีข้อข้องใจครับ Skin Title มันทำในเครื่องของพี่ได้อะครับ
เครื่องของผมดีกว่าของพี่ตั้งเยอะ :(
sommonkill
ผมก็ทำไม่ได้ครับ งง มาก
หรือเป็นเพราะ เวอชั้นใหม่
ผมเขียนแบบนี้
start osu!.exe
ping localhost -n 6
copy .\data\_long.png .\data\title.png /y




ตอบ : มันก็ต้องเจาะจงไฟล์ที่จะก๊อปปี้แล้วปลายทางที่จะก๊อปปี้ด้วยครับ
แล้วไฟล์ที่จะก๊อปปี้ก็ต้องชื่อ title.png เช่นเดียวกันไม่ใช่ _long

ตัวอย่าง : copy D:\osu!\Data\title\title.png D:\osu!\Data\title.png /y

D:\osu!\Data\title\title.png คือไฟล์ที่จะใช้ก๊อปปี้ จะวางไว้ใหนก็ต้องเจาะจงที่นั่น C/D/E/ โฟลเด้ออะไรงี้
D:\osu!\Data\title.png /y ด้านหลังนี้คือปลายทางก๊อปปี้

ส่วน Title Background ตอนนี้สามารถทำได้แล้วโดยการวางไฟล์ JPG ไว้ใน Folder Skin ในชื่อ menu-background
แต่กรณีนี้ต้องเป็น Supporter เท่านั้น
Please sign in to reply.

New reply