เมนูเพิ่มเติม
เข้าชม: 2649|ตอบกลับ: 1

[Adminstrator]


เหงาจุง

อาสึนะ คิริโตะ HBD Tz Azusa Yui Mikasa Ackerman Hatsune Miku Tokisaki Kurumi 2Y Yatogami Tohka Itsuka Shido Tobiichi Origami Itsuka Kotori Yoshino Tokisaki Kurumi Kuriyama Mirai Yaya Mio Yukina Tsumugi HBD Miku 7Y Halloween 2014 Sinon  Christmas ! 2014 Happy new year 2015 Saitama Inori วันแม่ 2559

  • โมเอะ: 47523
  • Money: 5462129
  • Tz: 51240
  • Posts: 5429
  • Donate: 970 THB
  • Joined: 11-11-2011
พลังน้ำใจ: 196405
   Pet:
Rem V.1
หัวฟ้านางเอก

โพสต์เมื่อ 10-12-2011 22:31:18 |แสดงโพสต์ทั้งหมด
เมื่อเรารู้เรื่องการทำคาราโอเกะในระดับกลางดีแล้ว
คงเชี่ยวชาญเรื่องtagsต่างๆ
จะเห็นได้ว่า ถ้าเราอยากได้ความหลากหลายมากกว่านี้
เอฟเฟคสวยงามที่ต้องใช้การคำนวณซับซ้อนกว่านี้
เราจะทำอย่างไรล่ะ

ก่อนอื่นเราต้องมารู้จักModifiers กันก่อน
ไฟล์คาราโอเกะนั้นเราจะแบ่งออกมาๆได้เป็น4ส่วน คือ
-Code lines
-Template lines
-Karaoke lines
-Comment lines


สำหรับช่องTemplate lines และCode lines
ต้องถูกมาร์คเป็นคอมเม้นต์เสมอและต้องถูกวางด้านบนสุด เพื่อที่เราใช้Applyเอฟเฟค
ส่วนKaraoke lines คือบรรทัดคาราโอเกะและบรรทัดที่แสดงผล


เราจะรู้ได้อย่างไรว่าอะไรคือlinesไหน
หรือบรรทัดอะไร เป็นkaraoke,template,Code หรือcomment ง่ายๆเลยก็ คือ



- Code lines ขึ้นต้นด้วย code
- template lines ขึ้นต้นด้วย template
- Karaoke lines ก็คือบรรทัดที่เราไม่ได้ติ๊กcommentก่อนApply
เมื่อเราApply แล้วจะเป็นบรรทัดที่ขึ้นคำว่า
karaoke(ต้นฉบับจะถูกทำเป็นคอมเม้นต์อัตโนมัติ) ตรงช่องeffect
กับ fx(ผลลัพธ์ที่แสดงออกมา) ตรงช่องeffect
- Comment lines สังเกตว่าที่ช่องeffect เมื่อเราApply จะเป็นช่องว่าง

modifiers คือ คำที่ตามหลังคำว่าcode หรือ template ในช่องeffect
เพื่อใช้บ่งบอกว่าจะแสดงผลออกมาเป็นอย่างไร

เราไปดูวิธีการใช้งานกันคร่าวๆก่อน
ปกติถ้าเราผสมtags เสร็จแล้ว ใส่ช่องeffect ด้วยคำว่า template line
(modifier ในที่นี้คือคำว่า line แปลว่าบรรทัด)
สังเกตุว่าผลที่ได้จากการApplyจะเป็นการวางeffectไปในบรรทัดนั้นๆ
เป็นบรรทัดเดียวกัน


แต่ถ้าเราเปลี่ยนเป็นtemplate syl
(modifier ในที่นี้คือคำว่า syl มาจากsyllabel แปลว่าคำหรือพยางค์)
ผลที่ได้จะออกมาเป็นการวางเอฟเฟคไปในแยกเป็นคำๆออกไปแต่ละบรรทัด
ไม่ได้รวมกันเป็นบรรทัดเดียว ตาม\kที่เราแยกไว้



แล้วถ้าเราเพิ่มmodifiers ต่อจาก modifiers เข้าไป
เป็นtemplate syl noblankก็จะได้ผลออกมาต่างกับข้างบนดังนี้
ข้างบนเราจะสังเกตุได้ว่า ตัวที่เป็นช่องว่างไม่มีค่าจะถูกApplyออกมาด้วย
แต่noblank ใส่ไปเพื่อไม่ต้องการที่จะให้รันช่องว่างนั้นออกมานั่นเอง




เรามาเริ่มที่Code linesกันก่อน
Code linesตามปกติแล้วเอาไว้ใส่ค่าเริ่มต้นอะไรต่างๆ
เพื่อเอาไปให้Template linesได้นำไปใช้งาน

หมายความว่า ค่าเริ่มต้นต่างๆนั้นจะใส่ที่Code linesก็ได้
หรือใส่ที่Template linesก็ได้

การนำไปใส่ในCode lines
ทำให้ดูง่าย ลดความซับซ้อนในTemplate lines
ในกรณีที่Template lines มีหลายบรรทัดมีความซับซ้อนสูง
และเวลาจัดเปลี่ยนไม่ยุ่งยาก ต้องไปเปลี่ยนทีละบรรทัดในTemplate lines
พูดง่ายๆ เป็นช่องที่ไว้จัดการTemplate linesอีกทีนึง
ลักษณะ ในช่องCode lines นั้นจะเหมือนการเขียนโปรแกรม
คือจบท้ายด้วย; ต่อ1คำสั่ง คาดว่าการเขียนโค้ดใช้หลักการเขียนโปรแกรมภาษาLua


modifiers หลักๆ ที่ตามหลัง code จะมีดังนี้
- once
- line
- syl
- furi
- syl furi


ตัวอย่างการกำหนดค่าในCode lines


สังเกตว่าบรรทัดแรกเรากำหนดตัวแปร3ตัวในการคำนวณ คือone ,two ,three
เรานำค่าตัวแปรนั้นมาใช้ในTemplate lines ทั้ง3บรรทัด
สมมุติเวลาเราอยากจะเปลี่ยนค่าoneทีเดียว3บรรทัด เราแค่มาเปลี่ยนค่าที่ตัวแปรone
ในช่องcode line แค่ตัวเดียว แล้วApplyใหม่ก็จะเกิดการเปลี่ยนเป็นค่าใหม่ออกมา


เป็นการใช้Code linesจัดการTemplate lines ดีกว่าที่จะไปกำหนด
ค่าใน Template linesแต่ละบรรทัด ซึ่งจะยุ่งยาก
เวลาไปแก้ไขต้องแก้ไขทีละบรรทัด อาจเกิดความสับสนได้


Template lines คือ ช่องที่จัดการeffect คาราโอเกะ
ว่าจะให้เล่นลูกเล่นอะไร แบบไหนบ้าง
ถ้าอยากเล่นเอฟเฟคคาราโอเกะหลายๆแบบ
เขียนเป็นบรรทัดเดียวหลายเอฟเฟคนั้นอาจจะทำให้สับสนยุ่งยาก และตรวจสอบจุดผิดพลาดลำบาก
เราก็ต้องทำtemplate lines หลายบรรทัด ไว้ใส่เอฟเฟคในแต่ละแบบที่ต่างกัน

modifiers ที่ตามหลัง template จะมีดังนี้
- line
- pre-line
- syl
- furi
- syl furi


ตัวอย่าง การเล่นเอฟเฟคหลายๆรูปแบบ
เราเพียงใส่effectในแต่ละTemplate lines
เอฟเฟคก็จะแยกเป็นบรรทัดมาให้ ทำให้ดูง่ายขึ้น



modifiers อื่นๆ
- all
- char
- fx ชื่อ
- fxgroup ชื่อ
- keeptags
- multi
- noblank
- notext "Not applicable for code lines"
- repeat n, loop n


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



จะเห็นว่าสามารถใช้คำตามหลังเสริมเข้ามาได้
ผลลัพธ์ที่ได้อาจจะเป็นการจัดกลุ่ม หรืออื่นๆ ตามคำที่ตามหลังมาแต่ละตัว




รู้เรื่องเบื้องต้นกันไปแล้ว
ต่อไปเป็นการอธิบายModifiers แต่ละตัว

modifiers ที่ตามหลัง code จะมีดังนี้

- once เป็นการประกาศค่าฟังค์ชั่นที่จะใช้ในtemplate
โดยจะทำงานเป็นตัวแรกสุด เวลาเราApply 1 ครั้ง
มันจะมาอ่านที่code once 1ครั้ง ก่อนเพื่อให้รู้ว่าเรามีฟังค์ชั่นอะไรที่จะใช้งาน
โดยรันหนึ่งครั้งต่อทั้งหมด คือจะรันเพียงรอบเดียวจบ ไม่กลับมาดูใหม่

- line จะรัน1 ครั้ง ต่อ1 บรรทัด

- syl จะรัน1 ครั้ง ต่อ 1 คำ

- furi จะรัน1 ครั้ง ต่อ1 furigana พูดง่ายๆเวลาทำfuriใช้ตัวคันจิ 1 ตัว
อาจจะมีหลายเสียงในตัวคันจิตัวเดียว

จะเห็นว่าความแตกต่างของมัน คือ ความถี่ในการรัน
แปลได้ว่า once เมื่อรันครั้งนึงค่านั้นๆจะเปลี่ยนแปลงอะไรไม่ได้เลย
line จะสามารถเปลี่ยนได้ในแต่ละบรรทัด syl
และfuriก็เปลี่ยนแปลงได้ถี่ขึ้น ตามแต่ละตัว

******
ข้อสำคัญคือ code lines ที่ไม่มีmodifiers จะถูกกำหนดเป็นcode once อัตโนมัติ
******

modifiers ที่ตามหลัง template จะมีดังนี้

- line (name) กำหนดให้แสดงผลลัพธ์เป็นบรรทัดเดียว สามารถกำหนดชื่อได้
เพื่อนำไปใช้ร่วมกับpre-line ได้



- pre-line (name) ใส่โค้ดไว้ด้านหน้าสุดในบรรทัดนั้นๆ
สามารถกำหนดชื่อให้ตรงกับชื่อในtemplate line เพื่อไปใช้เฉพาะtemplate lineนั้นๆได้  


สังเกตจากภาพด้านบน pre-line ไม่ใส่ชื่อจะแยกบรรทัดออกมาเป็นบรรทัดที่8
ส่วนที่ใส่ "ชื่อ" จะใส่{\org(-200,230)} แค่ครั้งเดียวในบรรทัดที่10
ซึ่งเป็นบรรทัดที่มาจากบรรทัดที่4


- syl กำหนดให้แสดงผลลัพธ์แยกเป็นคำๆตามแต่ละตัวที่เราไทม์ไว้ โดยจะแสดงผลออกมา
เรียงทีละบรรทัด



- furi รันโค้ดแยกเป็นfurigana ตามแต่ละตัวที่เราทำfuriganaไว้
สำหรับการทำfurigana แบบการโค้ดลงไปข้างตัวอักษรนั้นๆ พอรันออกมา
จะทำstyle เป็น style-furigana อัตโนมัติ โดยแยกตัวอักษรที่เป็น
firigana ออกมาต่างหาก


ผลลัพธ์ที่ได้



-syl furi  เป็นการรันโค้ดโดยแยกsylมาบรรทัดนึง furiอีกบรรทัด
ถ้าทำfuri อย่างเดียว จะแค่แยกfuriganaออกมาเท่านั้น ตัวที่ไม่ใช่furiganaจะไม่แสดงผล
แต่ถ้าทำsyl furiจะแยกอักษรแต่ละตัวตามsyl และตามfuriแยกจากกัน

<modifier11>

จากภาพจะสังเกตุว่าทำsylออกมาด้วยต่างกับตัวอย่างข้างบน คือ
ข้างบนเราต้องทำtemplate lineเอาเอง จึงจะแสดงตัวอักษรที่ไม่เป็นfuriganaออกมา

******
ข้อสำคัญคือ template lines ที่ไม่มีmodifiers จะถูกกำหนดเป็นtemplate syl อัตโนมัติ
******

modifiers อื่นๆนี้มีไว้ใช้ตามหลังทั้งcode และtemplate แบบเสริมต่อเข้าไป

- all
เมื่อใช้คำนี้ตามหลังtemplate จะส่งผลลัพธ์แก่ทุกstyleที่เราใช้ ไม่ใช่เฉพาะแบบเดียวในtemplate line นั้นๆ
ทำให้เข้าถึงstyle ทั้งหมด ไม่ใช่แค่บรรทัดเดียวหรือtemplate เดียว

ตัวอย่างเช่น ปกติถ้าเราไม่ใส่all เวลาApply จะแสดงผลเฉพาะstyleที่เซ็ตไว้เหมือนกัน
ตัวstyle ที่ต่างไปจะไม่แสดงผลด้วย



เมื่อเราเซ็ตall จะแสดงผลต่อทุกstyle โดยไม่จำกัดว่าเป็นstyleแบบใด



- char
ทำให้มีผลลัพธ์เป็นตัวอักษรแต่ละตัว ไม่ใช่คำแต่ละคำ สามารถนำมาใช้กับ code line ได้แต่ไม่นิยมใช้
ส่วนtemplate ใช้กับระดับ sylเท่านั้น



- fx ชื่อ
แสดงผลเฉพาะชื่อที่กำหนด โดยเป็นการกำหนดลงในโค้ด ที่เรียกว่าinline-fx
เมื่อApplyออกมา ผลลัพธ์จะแสดงออกมาเฉพาะตัวที่เรากำหนดชื่อไว้ วิธีการกำหนดคือ \-ชื่อ
ใช้ได้กับระดับsyl เช่นเดียวกัน



- fxgroup ชื่อ
ประกาศtemplate นั้นๆเป็นชื่อกลุ่มที่จะทำให้effectมีผล ต่อกลุ่มนั้นๆ
วิธีการใช้เหมือนข้างบนครับ เพียงแต่เราเป็นคนกำหนดกลุ่มต่างๆได้หลากหลายมาก
แทนที่จะกำหนดได้แต่ในinline-fx อย่างเดียวเหมือนแบบข้างบน เช่น

1 ตัวอย่างการกำหนดแสดงผลลัพธ์เฉพาะ inline-fx ที่ชื่อaaa



2 ตัวอย่างการกำหนดให้แสดงผลลัพธ์เฉพาะตัวที่ช่วงเวลามากกว่า\k40(Duration > 400)



3 ตัวอย่างการกำหนดให้แสดงผลลัพธ์เฉพาะชื่อactor ที่กำหนด



จะเห็นว่ากลุ่มนั้นแล้วแต่เรากำหนดจริงๆ ใช้งานได้หลากหลายมากมายแล้วแต่เราประยุกต์


- keeptags
เป็นการเก็บtags ที่ไม่ใช่\k โดยนำออกไปแสดงผลด้วย
ไม่มีผลเมื่อนำไปรวมกับchar หรือ multi

ตัวอย่าง ระหว่างอันบนไม่มีkeeptags กับอันล่างมีkeeptags
จะเห็นว่า\shad0 ในอันล่างจะถูกแยกออกมาให้เวลาApply



- multi
ทำให้templateแสดงผลแบบmulti อันนี้มีไว้เพื่อทำเกี่ยวกับfuriganaขั้นสูง
เวลามีการทำfuriganaแบบการโค้ดลงไป จะเป็นการให้กระทำซ้ำวนที่เดิม
ตามแต่furiganaที่แยกออกมา ใช้ได้ผลกับแบบsyl

จากตัวอย่าง สมมุติคำว่า竜 อ่านออกเสียงได้เยอะมากๆ ที่ตามหลังมาเป็นfuriganaทั้งหมด
เมื่อApply แล้วจะกลายเป็นการเล่นเอฟเฟคซ้ำตัว 竜 วนที่เดิม ตามจำนวนfuriganaแต่ละตัว
แทนที่จะรวมเป็นอันเดียว ถ้าไม่มีmultiจะมีตัว 竜 แค่เพียง1ตัว



- noblank
ไม่มีค่าว่าง หรือตัวที่เป็นค่าว่างจะไม่แสดงออกมา มีผลกับระดับsylเท่านั้น
เหนือกว่าระดับsyl เช่น line จะไม่มีผล
ใช้ได้ดีเวลามีการหยุดเสียงหรืออื่นๆ พวกค่าว่างนี้เวลาApply จะเกิดบรรทัดว่างเปล่า
ที่ไม่จำเป็นต้องมี เพื่อไม่ให้เปลืองบรรทัดโดยใช่เหตุ โค้ดมีความสั้นเราจะใช้noblank
คนที่ทำคาราโอเกะน่าจะเจอบ่อย และใช้บ่อยด้วย



- notext
ข้อความจะไม่ถูกแสดงออกมาในผลลัพธ์ ไม่สามารถใช้กับcode linesต่างๆได้
ตัวอย่าง จะเห็นว่าคำว่าhello world จะไม่แสดงออกมา



- repeat n, loop n
วนลูป เป็นจำนวนnรอบ

ตัวอย่าง การใช้repeat



ตัวอย่าง การใช้loop


กล่าวง่ายๆ Modifiers คือตัวบ่งบอกว่าจะแสดงผลออกมายังไง
เพื่อให้เราดูเอฟเฟคได้อย่างเข้าใจง่ายขึ้น สามารถแก้ไขสิ่งผิดพลาดหรือสิ่งที่ไม่ต้องการได้
มากกว่าที่จะรวมหลายๆโค้ดไว้เป็นกระจุกเดียวดูลายตา และแก้ไขลำบาก

[Professional Member]


  • โมเอะ: 470
  • Money: 1877
  • Tz: 566
  • Posts: 149
  • Donate: 0 THB
  • Joined: 30-12-2011
พลังน้ำใจ: 0
   Pet:
kanade
น่ารักจังอ่ะ

โพสต์เมื่อ 30-12-2011 21:08:16 |แสดงโพสต์ทั้งหมด
ก้อยากใช่ย่อยเลยนะนี่


ปิด

ประกาศจาก Admin

ช่วยบริจาคค่า VPS หน่อยจ้า
ช่วยบริจาคค่า VPS หน่อยจ้า
ช่วยหน่อยเนอะ ไม่ได้บังคับนะเออ เเต่สักหน่อยก๊ยังดี ^^

ดู »

ThaiZeed

|ดูการ์ตูนออนไลน์|โหลดการ์ตูน|Doujin|ดูการ์ตูนซับไทย|ดูการ์ตูนพากย์ไทย|อ่านการ์ตูน|

GMT+7, 5-12-2016 17:33 , Processed in 0.039759 second(s), 19 queries , Xcache On.

Powered by Discuz!

© 2001-2012  Template BY: GDC & 2th