วิธีการประหยัดพื้นที่ App โดยการลดขนาดไฟล์เสียง by Ziah
Jan0
โดยปกติแล้วไฟล์เสียงที่เราใส่มาใน Unity ทาง Unity จะเรียกใช้งานเป็น AudioClip ซึ่งจะมีการปรับแต่งหลังๆอยู่สามหัวข้อคือ
• Load Type ที่แบ่งได้เป็น 3 ตัวเลือก (เพิ่มเติมดูได้ที่ Blog ก่อนหน้า Click)
• ถัดมาขอข้ามไปหัวข้อที่ 3 ก่อน คือ Sample Rate Setting ซึ่งสามารถใช้ลดขนาดได้เหมือนกัน เพราะการลด Sample Rate ของเสียงจะทำให้ลดขนาดและคุณภาพเสียงได้ โดยมี 3 ตัวเลือกคือ
- Preserve Sample Rate คือใช้ Sample Rate จากเสียงโดยตรง
- Optimize Sample Rate ให้ตัว Unity คำนวนหา Sample Rate ที่รองรับความถี่สูงสุดของเสียงนี้ให้เองอัตโนมัคิ
- Override Sample Rate เลือก Sample Rate เองเลย
ซึ่งวิธีนี้สามารถเลือกลด Sample Rate เองเลยก็ได้ หรือจะทำเองจากโปรแกรมตัดต่อเสียงอื่นจากภายนอกก็ได้ซึ่งเสียงทั่วๆไปแล้ว Sample Rate จะอยู่ราวๆ 44.1k – 48k ซึ่งถ้าอยากให้ไฟล์ขนาดลดลง เราสามารถลดเหลือ 22.05k ได้อยู่ แต่คุณภาพจะแย่ลงไปเยอะมากๆเทียบกับขนาดไฟล์ที่ลดลง
• มาข้อที่ 2 กัน ซึ่งจะเป็นวิธีที่แนะนำ คือการเลือก Compression Format ซึ่ง Default ของ Unity จะเลือกให้เป็น PCM ซึ่งจะลดขนาดได้ไม่มาก ทีนี้ตัวเลือกจะมีทั้งหมด 4 แบบดังนี้
- PCM เป็นตัวที่บีบอัดน้อยที่สุดจึงให้เสียงที่คุณภาพดีที่สุด ไม่ควรใช้กับเสียงขนาดใหญ่ ใช้ CPU ไม่มาก
- ADPCM ขนาดเล็กกว่า PCM 3.5 เท่าแต่มี Noise บ้างเล็กน้อย เหมาะกับการใช้กับเสียงที่ต้องเล่นซ้ำๆ ใช้ CPU น้อยกว่า Vorbis/MP3
- Vorbis/MP3 เป็นตัวที่บีบอัดได้ดีมากๆ และมี Slide Quality ให้เลือกระดับคุณภาพ (1-100) จากประสบการณ์จริง Quality 100 ฟังแล้วแยกแทบไม่ออกเลย เป็นตัวเลือกกลางๆที่ดีมาก
- HEVAG คล้ายๆ ADPCM เป็นวิธีพื้นฐานของ PS Vita
ซึ่งจากการที่ใช้มา Vorbis/MP3 เป็นตัวเลือกที่ดีมากจริงๆ เพราะเทียบขนาดต่อคุณภาพแล้ว ลดขนาดได้เยอะมากโดยที่คุณภาพตกไปไม่เยอะเท่าไร ที่เหลือก็อยู่ที่เราจะเลือกปรับ Quality ซึ่งจากลองที่ฟังมาเองนั้น BGM 1 เพลงสรุปคร่าวๆได้ว่า
- Quality 25 – ฟังแล้วแทบแยกไม่ออกจากเสียงปกติเลย ขนาดเล็กลงเหลือ 21% จากขนาดเต็ม
- Quality 20 – ฟังแล้วแยกออกเล็กน้อยว่าไม่ได้คุณภาพดีเท่าเสียงปกติ ขนาดเล็กลงเหลือ 16% จากขนาดเต็ม
- Quality 1 – ฟังแล้วแยกออกชัดเจนอยู่แต่ไม่ได้ถึงกับแย่มาก ขนาดเล็กลงเหลือ 13%
ดังนั้นจากการที่ทดสอบเอง จึงยึดราวๆ Quality 20 เป็นหลัง เพราะฟังแล้วแยกออกได้เพียงเล็กน้อยว่าเสียคุณภาพไปแต่ขนาดที่ลดลงนั้นยังนับว่าคุ้มมากๆ ส่วนต่ำกว่า 20 นั้นน่าจะไม่คุ้มละเพราะจากที่ทดสอบแล้วลด Quality เหลือ 1 ยังลดจาก Quality 20 แค่ 3% เท่านั้น
ที่เหลือก็อยู่ที่คุณภาพเสียงกับการลองฟังดูแล้วล่ะครับว่า App ของคุณเหมาะกับ Quality เท่าไหร่
[Unity] การเลือก LoadType ของ AudioClip ให้เหมาะกับ App ของเรา by Ziah
Jan1
โดยปกติแล้วไฟล์เสียงที่เราใส่มาใน Unity ทาง Unity จะเรียกใช้งานเป็น AudioClip ซึ่งจะมีการปรับแต่ง Load Type หรือรูปแบบในการโหลดข้อมูลเสียงไว้ 3 แบบ คือ
- Decompress On Load
จะทำการแกะการบีบอัดในตอนที่ทำการโหลดเสร็จ หรือก็คือการแกะการบีบอัดแล้วเก็บไว้ใน Memory เลย ข้อดีคือใช้ CPU ไม่มากเพราะประมวลผลตอนโหลดก่อนเล่นเลย ข้อเสียคือจะใช้พื้นที่ใน Memory เยอะ จึงควรใช้กับเสียงที่ไม่ยาวมากนัก
สรุปใช้กับเสียงที่เล่นซ้ำบ่อยๆ และเป็นช่วงที่ Memory เหลือค่อนข้างเยอะ ไฟล์เสียงไม่ใหญ่
- Compressed In Memory
จะทำการบีบอัดไว้ใน Memory แล้วทำการแกะการบีบอัดในขณะที่เล่นจริง ข้อดีคือใช้พื้นที่ใน Memory น้อยกว่าเพราะเก็บไว้ใน Memory แบบบีบอัด ข้อเสียงคือใช้ CPU บ่อยครั้งตามจำนวนที่เล่นเพราะต้องแกการบีบอัดทุกครั้ง
สรุป ใช้ในจังหวะที่เล่นเสียงเพลงที่มีขนาดใหญ่ เล่นซ้ำไม่บ่อย หรือช่วงที่มี Memory เหลือไม่มาก
- Streaming
จะเป็นการเล่นเสียงแบบตามข้อมูลเสียงจริงๆ ณ เวลานั้นเลย ข้อดีคือแทบจะไม่กิน Memory เลยเพราะเก็บแค่ Buffer ในการเล่นเสียงแต่ละช่วง ข้อเสียคือใช้ CPU ตลอดเวลาในการเล่นเสียง
สรุป ใช้กับเสียงที่มีขนาดใหญ่มาก และควรเป็นช่วงที่มีระบบอื่นๆกิน Process CPU ไม่มากเท่าไร
ปรับปรุง Sound Effect ของฉากต่อสู้ by akara
Nov0
เกม Warrior Tales Fantasy ในตอนแรกมีปัญหาว่าฉากต่อสู้ดูไม่ค่อยมันส์เท่าไร ทีมก็เลยมาช่วยกันคิดว่าจะแก้ไขอย่างไรดี ประเด็นหนึ่งที่ทีมพิจารณาว่าควรต้องแก้ไขก็คือเรื่อง SFX
วิธีการที่ทีมคิดว่าจะทำคือ
เปลี่ยนจาก SFX แบบเดิมที่เล่นเสียง hit เพียงเสียงเดียว เปลี่ยนเป็น
1.เพิ่มเสียง Swing ของอาวุธ
2.เพิ่มเสียงhit ของอาวุธนั้นๆเข้ามาด้วย
3.เพิ่มเสียงร้องของ unit ที่โดนโจมตี
ผลที่ได้เป็นแบบนี้ครับ
ปล.ในไฟล์ตัวอย่าง มีการทำให้ฉากเขย่าเมื่อโดนโจมตีด้วย
8 เว็บไซต์เพื่อหา Sound Effect & Music Loop สำหรับใช้ในเกม by akara
Jul3
entryนี้ ผมรวมลิ้งค์เว็บต่างๆที่สามารถโหลด sound effect และ music loop สำหรับทำเกม ซึ่งมีทั้งฟรีและเสียเงินไว้นะครับ
1.Soundsnap – http://www.soundsnap.com/
มีทั้ง sound effect และ music loop แต่ไม่ใช่เฉพาะทางสำหรับทำเกมเท่าไร ต้องไป search เอาในเว็บดู เว็บนี้จ่ายเิงินสมัครสมาชิกแล้วจะโหลดได้เป็นไฟล์ครับ เช่น 5 sounds – $9 USD
2.Freesound - http://www.freesound.org/
ขึ้นชื่อเว็บว่าฟรี แต่ว่าไม่ใช่ว่าฟรีทุกไฟล์นะครับ ต้องเข้าไปอ่านเงื่อนไขของคนทำเอา ซึ่งก็ต่างๆกันไป เว็บนี้มีทั้ง Sound Effect และ Music Loop เช่นกัน คล้ายๆ Soundsnap
3.PlayonLoop – http://www.playonloop.com/music-loops-category/videogame/
เว็บนี้มี Music Loop สำหรับเกมโดยเฉพาะ แต่จะมีแต่เพลงที่เป็น 8bit กับ 16bit แบบเกมเก่าๆเท่านั้น สามารถโหลดฟรีได้เฉพาะที่เป็น Loop สั้นๆ ถ้าอยากได้เต็มๆก็จ่ายเอาครับ
4.Sound Bible - http://soundbible.com/tags-game.html
เว็บนี้หลักๆผมเอาไว้หา Sound Effect ที่หาไม่ได้จาก Soundsnap และ Freesound ครับ มีให้เลือกไม่เยอะ แต่ว่าก็มีเสียงที่ใช้ได้อยู่เหมือนกัน
5.Incompetech – http://incompetech.com/music/royalty-free/
เว็บนี้เด็ดมากครับ ตรงที่มันสามารถหาเพลงตามอารมณ์ได้! เช่น เพลง เศร้า สนุกสนาน ลึกลับ ตื่นเต้น แต่ว่ามีเฉพาะ Music Loop เท่านั้นนะครับ
6.RPG Games Essentials Vol.1 – http://www.premiumbeat.com/sfx/collection_details/rpg-games-sfx-1
อันนี้เป็นแพคเสียงที่จำเป็นสำหรับเกม RPG โดยเฉพาะครับ สามารถเลือกซื้อเป็นอันๆหรือซื้อเหมาแพคไปเลยก็ได้
7.RPG Music Pack by Aaron Krogh
เป็นแพคเพลงสำหรับเกม RPG ครับ โหลดไปใช้ได้ฟรี แต่ว่าไม่ใช่ Loop ต้องมานั่งตัดเอาเองนะครับ โหลดได้ที่นี่ -> Download Link
ลิ้งค์ศิลปินเจ้าของผลงาน https://soundcloud.com/aaron-anderson-11
8.McFarland Beats – http://www.mattmcfarland.com/royalty-free-music.html
เป็นเว็บบลอคของศิลปินท่านนึงครับ ซึ่งพี่แกปล่อยเพลงให้โหลดฟรีด้วย