ประเภทเสียง
ไฟล์เสียงต้องอยู่ในโฟลเดอร์โปรเจ็กต์เกม (ชื่อโปรเจ็กต์\game) ไฟล์เสียงที่โปรแกรม Ren'Py รองรับได้แก่- Opus (.opus)
- Ogg Vorbis (.ogg)
- MP3 (.mp3)
- WAV(.wav)
เสียงในโปรแกรม Ren'Py แบ่งเป็น 3 ประเภทได้แก่ Music, Sound, และ Voice เสียงทั้ง 3 ประเภทแบ่งตามการวนซ้ำและการเริ่มต้นดังตารางข้างล่าง ไม่จำเป็นต้องเป็นเสียงตามประเภทจริง ๆ ก็ได้ เช่น ถ้าต้องการเปิดเพลงครั้งเดียวจบ ไม่วนซ้ำ สามารถเปิดเพลงนั้นด้วยคำสั่งเปิดเสียงเอฟเฟกต์ได้ โปรแกรม Ren'Py สามารถเปิดหลายเสียงพร้อมกันได้ แต่ต้องไม่ใช่เสียงประเภทเดียวกัน (เปิดได้ประเภทละ 1 เสียง รวมเป็นเปิดได้พร้อมกัน 3 เสียง)
ความแตกต่างของประเภทเสียง
ประเภทเสียง | วนซ้ำ | เริ่มต้น | ระยะเวลาเปิดเสียง |
Music (เสียงเพลง) | ✔ | เริ่มทันที | ไม่สิ้นสุด จนกว่าจะมีคำสั่งหยุดหรือเปลี่ยนเสียง |
Sound (เสียงประกอบ) | ✘ | เริ่มทันที | เปิดจนจบครั้งเดียว |
Voice (เสียงพูด) | ✘ | เริ่มพร้อมกล่องข้อความต่อไป | เปิดจนจบครั้งเดียว หรือเปิดจนกว่าเปลี่ยนกล่องข้อความ (ถ้ายังไม่จบ) |
นอกจากนี้โปรแกรม Ren'Py ยังมีเสียงประเภทพิเศษคือ Audio จุดเด่นของเสียงประเภทนี้คือสามารถเปิดหลายเสียงพร้อมกันได้ แม้ว่ากำลังเปิดเสียง Audio อื่นอยู่ก็ตาม แต่ Audio ค่อนข้างมีข้อจำกัดมากกว่าเสียง 3 ประเภทข้างต้น เช่น ไม่สามารถต่อคิวเสียงได้ ไม่สามารถหยุดเสียงได้ ถ้าไม่จำเป็นจริง ๆ ผู้เขียนไม่แนะนำให้ใช้เสียง Audio
Play: เปิดเสียง
play คือคำสั่งที่เปิดเสียง ถ้ามีเสียงในประเภทเดียวกันกำลังเปิดอยู่ จะหยุดเสียงเดิมและเปิดเสียงใหม่แทน (ยกเว้นเสียง Audio) รูปแบบของคำสั่ง play คือนอกจากนี้ยังสามารถเปิดเสียงโดยค่อย ๆ เพิ่มความดังเสียงได้ ท้ายบรรทัด play ให้ใส่ส่วนขยาย fadein ตามด้วยเวลาที่เพิ่มเสียง หน่วยเป็นวินาที เช่น ต่อท้ายด้วย fadein 2.5 หมายถึงค่อย ๆ เพิ่มเสียงเป็นเวลา 2.5 วินาที หลังจากนั้นเปิดเสียงต่อตามปกติ
ตัวอย่างการใช้คำสั่ง play เช่น
สำหรับการใช้คำสั่ง play กับเสียง Voice จะเป็นการเปิดเสียงทันที และจะหยุดเสียงเมื่อแสดงหรือเปลี่ยนกล่องข้อความ ซึ่งอาจเปิดและปิดเร็วมากจนฟังไม่ทัน และไม่เหมาะกับการใช้งานเท่าไร การเปิดเสียง Voice ผู้เขียนแนะนำให้ใช้คำสั่ง voice
Stop: หยุดเสียง
stop คือคำสั่งที่หยุดเสียงในประเภทนั้นที่กำลังเปิดอยู่ ไม่สามารถใช้กับเสียง Audio ได้ รูปแบบของคำสั่ง stop คือเช่นเดียวกับคำสั่ง play ในคำสั่ง stop สามารถต่อท้ายด้วยส่วนขยาย fadeout ตามด้วยเวลาที่ลดเสียง เพื่อให้ค่อย ๆ ลดความดังเสียงจนหยุดเสียงในที่สุด
ตัวอย่างการใช้คำสั่ง stop เช่น
Queue: ต่อคิวเปิดเสียง
ถ้าใช้คำสั่ง play เปิดเสียงใหม่ขึ้นมา เสียงเดิมจะหยุดลงทันที ถ้าต้องการให้เปิดเสียงเดิมจนจบก่อนแล้วค่อยเปิดเสียงใหม่ เราต้องใช้คำสั่ง queue ยกเว้นเสียง Audio ไม่สามารถใช้คำสั่งนี้ได้ รูปแบบของคำสั่ง queue มี 2 รูปแบบกรณีต่อคิว 1 เสียงมีรูปแบบดังนี้
กรณีต่อคิวหลายเสียงจะมีกี่เสียงก็ได้ แต่ต้องเรียงตามลำดับ มีรูปแบบดังนี้
ตัวอย่างการใช้คำสั่ง queue เช่น
Voice: เสียงพูด เสียงพากย์
voice คือคำสั่งที่เปิดเสียง Voice พร้อมกับกล่องข้อความต่อไป และจะหยุดเมื่อเปิดเสียงจนจบ ถ้าเสียงยังไม่จบแต่ผู้เล่นเปลี่ยนกล่องข้อความ เสียง Voice เดิมจะหยุดทันที คำสั่งนี้เหมาะกับเสียงพูดของตัวละครตามข้อความที่แสดง ทำให้ผู้เล่นได้ยินเสียงตัวละครกำลังพูดประโยคที่อยู่ในกล่องข้อความ รูปแบบของคำสั่ง voice คือถ้าต้องการให้เสียง Voice เดิมไม่หยุดเมื่อเปลี่ยนกล่องข้อความ (เสียงนั้นต้องยังไม่จบ) ต้องใส่คำสั่ง voice sustain ก่อนหน้าคำสั่งแสดงกล่องข้อความใหม่ เช่น
Set_Volume: เปลี่ยนความดังเสียง
ไม่มีคำสั่งในภาษา Ren'Py โดยตรงสำหรับการเปลี่ยนความดังเสียง ต้องใช้ฟังก์ชัน (Function) เพื่อเปลี่ยนความดังเสียงดังนี้การเปลี่ยนความดังเสียงด้วยคำสั่ง set_volume ส่งผลต่อความดังของเสียงประเภทนั้นตลอดไป จนกว่าจะมีการเปลี่ยนความดังเสียงใหม่ ฟังก์ชันนี้ประกอบด้วย 3 พารามิเตอร์ (Parameter) ได้แก่
- ระดับเสียง ใส่ค่าเป็นตัวเลขตั้งแต่ 0.0 (ไม่มีเสียง) ถึง 1.0 (เสียงดังที่สุด) บังคับใส่พารามิเตอร์นี้
- delay ใส่ค่าเป็นตัวเลข เพื่อรอเวลาตามที่กำหนดก่อนเปลี่ยนความดังเสียง ถ้าไม่ใส่พารามิเตอร์นี้จะมีค่าเริ่มต้นเป็น 0
- channel ใส่ค่าเป็นข้อความ เช่น music, หรือ sound เพื่อเปลี่ยนความดังเสียงของประเภทนั้น ถ้าไม่ใส่พารามิเตอร์นี้จะมีค่าเริ่มต้นเป็น music
ตัวอย่างการใช้ฟังก์ชัน set_volume
ฟังก์ชัน set_volume เป็นสคริปต์ภาษา Python (ไม่เกี่ยวกับคำว่า renpy ด้านหน้าฟังก์ชัน) ดังนั้นต้องใส่ฟังก์ชันนี้ในรูปแบบเดียวกับสคริปต์ Python ทั่วไป เช่น นำหน้าด้วยเครื่องหมาย $, หรือใช้บล็อก python: ผู้อ่านสามารถย้อนกลับไปเรียนเรื่องการใช้สคริปต์ Python ในโปรแกรม Ren'Py ได้ที่ Ren'Py พื้นฐาน | บทที่ 4 ตัวแปรและตัวดำเนินการ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น