ยินดีต้อนรับทุกท่านครับ


วันอังคารที่ 25 ตุลาคม พ.ศ. 2554

ทำคาราโอเกะ Effect

นี่คือการใช้Automation เป็นการทำคาราโอเกะ
ในวิธีแบบที่สูงยิ่งขึ้น บทนี้จะเสนอวิธีพร้อมการแก้ไข
แต่ละเวอร์ชั่นของAegusub นั้นวิธีแตกต่างกัน ดังนั้นผมขออิง2.12 เป็นหลัก

ก่อนอื่นนั้น เมื่อเราไทม์คาราโอเกะในขั้นแรกเสร็จเรียบร้อยแล้ว

ในเวอร์ชั่นแรกๆ เราก็ต้องโหลดAutomation ที่จะใช้แปลง แต่เวอร์ชั่น2.12นี้ มีมาให้เรียบร้อยแล้ว

simple-k-replacer ที่ใช้ในเวอร์ชั่นแรกๆนั้นเป็นส่วนหนึ่งของKaraoke Templaterครับ
ดังนั้นเราไม่จำเป็นต้องโหลดสคริปต์อะไร เหมือนเวอร์ชั่นแรก



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

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

เมื่อได้ช่องว่างแล้ว ไปที่ช่องนั่น ติ๊กเครื่องหมายตรงcomment
เพื่อทำให้เป็นคอมเม้นต์

จากภาพจะเห็นว่า ช่องบรรทัดที่3 เป็นช่องว่างที่ถูกแทรกเข้ามา

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

จากนั้นที่ช่องEffect ให้ใส่คำว่า template line

ในช่องข้อความ ให้ใส่ข้อความที่จะแทนที่\k
ในที่นี้ผมต้องการเอฟเฟคกระโดด ผมจึงใส่
{\r\org(10000,240)\t($start,$mid,\frz-0.05)\t($start,$end,\frx-0.5)\t($mid,$end,\frz0)\t($end,$end,\alpha&HFF&)\k($dur)}
ซึ่งจะไปแทนที่\k อัตโนมัติ


เมื่อเสร็จสิ้นผมก็ไปที่เมนู Automation
Apply karaoke template จะปรากฏขึ้นให้เราเลือก


เสร็จแล้วโปรแกรมจะgenโค้ด ออกมาให้พร้อมทำให้คาราโอเกะ
ของเราเป็นคอมเม้นต์ ทั้งนี้เพื่อให้เราสามารถแก้ไขได้
จากนั้นก็จะไปใส่ตัวคาราโอเกะที่เราgenไว้บรรทัดล่างๆ
ของแถบข้อความ โดยที่ช่องeffect จะขึ้นว่า fx เป็นตัวที่บอกว่า
นี่คือeffect นะ ถ้าไม่ถูกใจก็แก้ไขง่ายๆ


เมื่อเรารัน จะเห็นว่าอักษรคาราโอเกะกระโดดแล้ว


แต่...ยังไม่เสร็จ เพราะผมต้องการให้คุณลองแก้ไขดู
ปรากฏว่าโค้ดผิดพลาดทำให้ตัวอักษรไม่เปลี่ยนสีเวลากระโดด
ซึ่งเราต้องไปแก้ ที่ช่องtemplate line นั่นเอง
ให้เราเปลี่ยนจาก $dur เป็น $kdur


แล้วก็ไปทำการapply ใหม่

เมื่อรันดูก็เป็นการเล่นเอฟเฟคกระโดดและเปลี่ยนสีที่สมบูรณ์


ทีนี้ก็สร้างและแก้ไขเป็นแล้วนะครับ
นี่คือตัวอย่างการใช้สคริปต์ Karaoke Template
ครับ นอกจากนี้มันมีสคริปต์ที่หลากหลายสร้างมาให้เราใช้
ตามแต่ละคน ที่เขียนสร้างขึ้นมา
ซึ่งเราต้องไปศึกษาเอาเอง

อันข้างล่างคือตัวอย่างจากhelp ลองเอาไปใช้ดูนะครับ
ตัวอย่างที่1
{\r\t($start,%$start+$dur%,\bord4)\t($start,%$end+750%,0.5,\frx%360*3%)\t(%$start+$dur%,$end,\bord0)}

ตัวอย่างที่2
{\r\t($start,$mid,\fscy200)\t($mid,$end,\fscy100)}

ขออธิบายส่วนนี้นะครับ

{\r\org(10000,240)\t($start,$mid,\frz-0.05)\t($start,$end,\frx-0.5)\t($mid,$end,\frz0)\t($end,$end,\alpha&HFF&)\k($dur)}

เผื่อคนเห็นโค้ดข้างบนนี้แล้วไม่เข้าใจ
นอกจากTags ต่างๆที่ควรรู้แล้ว ซึ่งเราเรียนรู้ในหมวดTags
สคริปต์ Karaoke Templater กำหนดตัวแปรไว้สำหรับใช้งานด้วย
ซึ่งตัวแปรพวกนี้ถือเป็นสิ่งที่ควรรู้ก่อน มีดังนี้

$start คือ เวลาเริ่มต้น
$mid คือ เวลากึ่งกลาง
$end คือ เวลาจบ
$kdur คือ ช่วงเวลา มีหน่วยเป็น milliseconds
$dur คือ ช่วงเวลา centiseconds ซึ่งมากกว่าmilliseconds อยู่ 10 เท่า

!(ตัวเลขหรือตัวแปร)! เป็นการคำนวณภายในเครื่องหมาย! ครับ
เราจะบวกลคูณหาร ตัวเลขให้ทำระหว่างเครื่องหมาย! ถ้าเป็นเวอร์ชั่น1จะใช้% เช่น
!$start+$kdur! , \frx!360*3! หรือ !$end+750!


เมื่อเราใช้สคริปต์
ค่าเวลาหลัง \k จะถูกแทนที่ลงไปในตัวแปร

ตัวอย่าง เช่น เราใช้
{\r\org(10000,240)\t($start,$mid,\frz-0.05)\t($start,$end,\frx-0.5)\t($mid,$end,\frz0)\t($end,$end,\alpha&HFF&)\k($dur)}

แทนที่ค่า\k ใน
{\k10}AA{\k20}BB

เวลา$start ของAA จะเป็น 0
เวลา$start ของBB จะเป็น 100 เกิดจาก10*10

เวลา$end ของ AA เป็น100
เวลา$end ของ BB เป็น300 เกิดจาก(10+20)*10

เวลา$mid ของ AA เป็น 50 เกิดจาก (100+0)\2
เวลา$mid ของ BB เป็น 200 เกิดจาก (100+300)\2

เวลา$kdur ของ AA เป็น 10
เวลา$kdur ของ BB เป็น 20

เวลา$dur ของ AA เป็น 100
เวลา$dur ของ BB เป็น 200

อธิบายแบบนี้ หวังว่าคงเข้าใจนะครับ^^
จริงๆมันมีตัวแปรมากกว่านี้ แต่คิดว่าพวกนี้คือพื้นฐาน
รู้ไว้ทำให้เราสามารถคำนวณค่าได้ รู้แค่นี้ก็ทำคาราโอเกะแบบง่ายๆได้
ก่อนที่จะมาเจาะลงลึกไปอีกขั้น
ปกติการเปลี่ยนแปลงแก้ไขโค้ดที่เราไม่ต้องการ
แค่Apply เท่านั้นก็ได้แล้วครับ อย่างข้างบนจะมีตัวอย่าง
การแก้ไข $dur เป็น $kdur แต่อาจจะสังเกตยากไป
อย่างเช่นต้นฉบับเรา

ต้องการแก้ไขจาก{\pos($x,$y)} เป็น{\k($kdur)} ก็แก้ที่template line
เสร็จแล้วApply


ผลลัพธ์ก็จะได้รับการแก้ไข ทุกบรรทัดที่มีstyle เดียวกับtemplate lineนั้นๆ
ในที่นี้มีแค่1บรรทัด จึงแก้1 บรรทัด ถ้ามี10 บรรทัด เราApplyใหม่ทีนึง มันก็จะแก้ทีเดียวสิบบรรทัดครับ


ส่วนJumping Blob Effect v2
เป็นของที่ผู้ใช้สร้างขึ้นมาเอง เพื่อให้สะดวกต่อการใช้งาน
เราสามารถสร้างเครื่องมือของตัวเราเองใส่ไปในโปรแกรมAegisubได้
อย่างเรามีtag เอฟเฟคสไตล์นึง สามารถเซ็ตได้หลายรูปแบบแค่เปลี่ยนข้อมูลบางอย่าง
เช่น จากหมุน 5รอบ เปลี่ยนเป็น10รอบ  เราก็สร้างเครื่องมือขึ้นมาเป็นไฟล์.lua

แล้ววันหลังแทนที่เราต้องมาผสมtagเอง ในรูปแบบเดิม
เราก็แค่เปิดเครื่องมือตัวที่เราสร้าง ใส่จำนวนรอบ กดok
มันก็ขึ้นtagมี่เราต้องการมาให้ เป็นต้น

เครื่องมือพวกนี้โดยหลักก็เป็นแค่ตัวผสมtag
พอกดokก็จะมีtagขึ้นให้อัตโนมัติ อันนี้ถ้าจำไม่ผิดaichan
เป็นคนสร้าง แล้วเอามาแพร่ให้ใช้งานกัน

แน่นอนว่าไม่ใช่เครื่องมือสำหรับเปลี่ยนรูปเท่านั้น
มันเป็นเครื่องมือสำหรับสร้างเอฟเฟคสไตล์ ภาพกระโดดกระทบตัวอักษร
Jumping Blob ตามผู้สร้างกำหนดไว้ ลองเล่นซัก4-5 รอบ
ดูว่าแต่ละรอบอะไรเปลี่ยนยังไง ก็คงใช้งานเป็นแล้ว
ถ้าอยากลองสร้างเครื่องมือเอง ดูว่าผู้เขียนเขียนอะไรไว้
สามารถเปิดไฟล์.lua ด้วยnotepad หรือพวกeditplus ดูข้างในได้ว่าเขียนอะไรไว้
คำไหนเป็นตัวปุ่ม หรืออะไร เราก็ดัดแปลงมาใช้งานได้
ช่วงนี้ผมคงบอกไม่ได้อย่างละเอียดว่าใช้งานเช่นไร คำตอบสำหรับเรื่องนี้คงช้าเอาเรื่อง
เพราะมันไม่ใช่ของโปรแกรมAegisubโดยตรง แต่เป็นผู้ใช้อย่างเราๆสร้างขึ้นมาเอง
อันนี้ต้องลองใช้ดูครับ ไม่ยาก มันแค่เปลี่ยนtagไปมา
\org เป็นการกำหนดจุดorigin ที่ใช้ในการหมุน
สามารถกำหนดนอกข้อความได้ครับ
กำหนดแล้วข้อความไม่จำเป็นต้องอยู่ตรงจุดนั้น แค่หมุนรอบจุดนั้น

\pos เป็นการกำหนดตำแหน่งของข้อความ
กำหนดตรงไหน ข้อความจะไปอยู่ตรงนั้นจุดนั้น
ในที่นี้มันเป็นการหมุนอยู่กับที่ กำหนดตำแหน่งแล้วใช้\an แทนก็ได้
\pos โดยหลักๆใช้กำหนดตำแหน่งเวลาใช้ควบคู่ template syl
ไม่เช่นนั้นมันจะเกิดการกระจายหรือซ้อนคำ ไม่เรียงเป็นบรรทัดเดียวกัน

ส่วนเรื่องซับที่ซ้อนกัน คงเพราะกำหนดตำแหน่งไว้ที่ตำแหน่งเดียวกัน
\pos(x,y) ค่าx,yค่าใดค่าหนึ่งอาจจะเท่ากัน
แยกสไตล์แล้วเซ็ตตำแหน่งx,y ใหม่ให้ต่างกันก็โอเคครับ

ส่วนเรื่องตัวที่ตามหลัง$ ตามคิวแล้วผมจะเขียนเป็นเรื่องหลังๆเลย
ศึกษาเองได้ที่ http://aegisub.cellosoft.com/docs/Karaoke_Templater_Reference:_Inline_variables
โดยหลักl คือ line เกี่ยวกับ บรรทัด
sคือ Syllable เกี่ยวกับคำ

เช่น
$lwidth เป็นความกว้างของบรรทัดนั้น
$swidth เป็นความกว้างของคำๆนั้น
$width  เป็นความกว้างของคำๆนั้นหรือบรรทัดนั้น
โปรแกรมจะเลือกอัตโนมัติ บางทีมันเลือกผิดถูกไม่รู้^^''
เลยต้องเจาะจงเอง

เครดิต : Robonin

ผมลองๆทำดู ก็ทำได้แค่นี้แหละครับ

http://video.mthai.com/player.php?id=18M1318998514M0

ไม่มีความคิดเห็น:

แสดงความคิดเห็น