~ mmdpaimaya ~ ส่วนแก้ไขเพิ่มเติมใน 1.2
เขียนเมื่อ 2017/05/07 00:14
แก้ไขล่าสุด 2021/09/28 16:42
หลังจากที่ได้สร้างโปรแกรม mmdpaimaya สำหรับใช้แปลงโมเดลของ MMD มาใส่ในโปรแกรมมายาไป https://phyblas.hinaboshi.com/20170221
ตอนนี้ได้ปรับปรุงโปรแกรมเพิ่มเติมเพื่อให้สามารถใช้งานได้ดีขึ้นแล้ว ตัวโค้ดก็ยังโหลดใช้ได้จากที่เดิม https://github.com/phyblas/mmdpaimaya
รุ่นปรับปรุงนี้ใช้ชื่อว่าเวอร์ชัน 1.2 เนื่องจากมีการปรับปรุงจากที่ออกไปตอนแรกพอสมควร
และในส่วนของคำอธิบาย readme ก็มีการแก้ไขเพิ่มเติมให้สอดคล้องกับเวอร์ชันใหม่
สำหรับตรงนี้จะขอเขียนบันทึกเอาไว้ว่ามีการเปลี่ยนแปลงอะไรยังไงบ้าง
1. แก้บั๊กที่โหลดบางไฟล์ไม่ได้
ในตอนแรกเริ่มมีโมเดลจำนวนหนึ่งที่ใช้โค้ดนี้โหลดแล้วเกิดข้อผิดพลาดขึ้นอย่างไม่ทราบสาเหตุ ทำให้ไม่สามารถใช้ได้
หลังจากได้ลองหาทางวิธีก็พบว่ามันเกิดจากการที่มีหน้าโพลิกอนบางส่วนมีการใข้จุดยอดซ้ำ หน้าแบบนั้นจะเกิดขึ้นไม่ได้ในไพธอน แม้แต่เวลาที่เปิดไฟล์ .obj เองก็ตามหากมีหน้าแบบนั้นอยู่ก็จะเกิดข้อผิดพลาดเหมือนกัน
แต่ว่าในโมเดลของ MMD มีอยู่จำนวนหนึ่งที่เกิดหน้าแบบนั้นขึ้นมา ไม่ว่าจะด้วยสาเหตุอะไรก็ตาม มันไม่ทำให้เกิดปัญหาในการเปิดใน MMD แต่พอนำมาแปลงก็จะมีปัญหาทันที
ดังนั้นการแก้ก็คือต้องเขียนโค้ดให้ทำการคัดเอาหน้าแบบนั้นทิ้งไป เท่านี้ก็ใช้ได้
อย่างไรก็ตามนี่เป็นแค่สาเหตุส่วนหนึ่งที่พบ ยังมีโมเดลอีกจำนวนหนึ่งที่ข้อผิดพลาดมาจากสาเหตุอื่น ยังหาไม่พบ ดังนั้นก็ยังคงไม่สามารถโหลดได้อยู่ ต้องหาทางแก้กันต่อไป
2. ใช้เปิดไฟล์ .x ได้แล้ว
ถ้าเป็นก่อนหน้านี้จะเปิดได้แต่ไฟล์ .pmd และ .pmx ทำให้หากมี .x อยู่ก็ต้องนำไปแปลงก่อน
เพื่อความสะดวกมากขึ้นจึงหาทางเขียนโค้ดให้สามารถอ่าน .x ได้ด้วยโดยตรง
โค้ดในส่วนที่ใช้อ่าน .x นั้นถูกเขียนขึ้นมาใหม่แยกจากส่วนที่เปิดอ่าน .pmd และ .pmx เพราะเป็นไฟล์ที่มีความแตกต่างกันมาก
เดิมทีโค้ดไม่ได้ถูกเขียนมาให้รองรับ .x ด้วย กลไกการอ่านข้อมูลมีความต่างกันพอสมควร โค้ดส่วนนี้จึงเขียนขึ้นเองทั้งหมดโดยไม่ได้ใช้ไลบรารีเสริมใดๆดังนั้นจึงอาจไม่มีประสิทธิภาพเท่า
มีโมเดลบางส่วนที่โหลดขึ้นมาแล้วยังมีอาการแปลกๆ ดังนั้นจึงเห็นได้ว่ายังใช้การได้ไม่ดีเท่าที่ควร ยังไงก็ยังแนะนำให้ใช้ .pmd กับ .pmx มากกว่า ไว้มีโอกาสจะปรับปรุงต่อไป
3. เพิ่มให้สามารถปรับเปลี่ยนภาษาได้
เพิ่ม GUI ภาษาญี่ปุ่นและภาษาจีนเข้าไปด้วย สามารถปรับภาษาไปมาได้โดยเลือกที่ด้านบนขวา ข้อความที่ขึ้นจะเปลี่ยนไปตามภาษาที่เลือก
การเพิ่มภาษาเข้าไปก็เพื่อให้สะดวกสำหรับคนชาติอื่นด้วยเท่านั้น ไม่ได้มีผลต่อชิ้นงาน
4. เลือกวัสดุได้หลากหลาย
ถ้าเป็นก่อนหน้านี้จะเลือกได้แค่ว่าสร้างวัสดุหรือเปล่า ถ้าเลือกสร้างก็จะทำเป็นวัสดุชนิด blinn
ตอนนี้ได้ทำให้เลือกวัสดุเป็นชนิดอื่นได้ด้วย ได้แก่ blinn, phong, lambert และ aiStandard
แต่โดยพื้นบานแล้วที่เหมาะจะใช้มากที่สุดก็ยังเป็น blinn เพียงแต่หากจะใช้อาร์โนลด์ในการเรนเดอร์แล้วใช้ aiStandard จะเหมาะกว่า
ส่วน phong และ lambert นั้นแค่ถือโอกาสใส่เพิ่มไปด้วยเฉยๆ โอกาสใช้งานจริงๆอาจจะไม่มี
5. สามารถเลือกว่าทำอัลฟาแม็ปทั้งหมดได้
ก่อนหน้านี้จะเลือกแค่ว่าจะไม่ทำอัลฟาแม็ปเลยหรือว่าเลือกทำบางส่วน
แต่จากการลองใช้มาเรื่อยๆก็พบว่าจริงๆแล้วการทำอัลฟาแม็ปในวัสดุที่ทำได้ไปก่อนทั้งหมดนั้นไม่ได้ทำให้เป็นปัญหาอะไรๆจริงๆ แม้ว่าจะทำให้แสดงผลแปลกๆในวิวพอร์ตแต่เวลาเรนเดอร์ก็จะไม่มีปัญหาอะไร
ดังนั้นโดยพื้นฐานแล้วทำอัลฟาแม็ปให้วัสดุทั้งหมดที่ทำได้ไปเลยก็ไม่ใช่ปัญหา จึงเพิ่มตัวเลือกให้ทำทั้งหมดได้
เพียงแต่ระบบคัดกรองอัลฟาแม็ปก็อุตส่าห์ตั้งใจทำขึ้นมาแล้ว แม้จะมีประโยชน์ไม่มากก็คงจะเหลือไว้ ไม่ได้เอาออก
ทั้งหมดที่ว่านี่เป็นส่วนหลักๆที่มีการเปลี่ยนแปลงไป ที่จริงมีรายละเอียดปลีกย่อยเล็กๆน้อยๆซึ่งไม่ได้ถึงกับต้องเขียนถึง
ที่จริงก็ยังมีอีกหลายอย่างที่อยากปรับปรุงให้ดีขึ้น เมื่อมีความรู้ประสบการณ์มากขึ้นก็รู้ว่าจะทำยังไงให้โปรแกรมดีขึ้นได้ พอเป็นแบบนั้นก็จะมาค่อยๆปรับเพิ่มเข้าไปอีกเพื่อให้โปรแกรมใช้ประโยชน์ได้ดียิ่งขึ้น
-----------------------------------------
囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧
ไม่อนุญาตให้นำเนื้อหาของบทความไปลงที่อื่นโดยไม่ได้ขออนุญาตโดยเด็ดขาด หากต้องการนำบางส่วนไปลงสามารถทำได้โดยต้องไม่ใช่การก๊อปแปะแต่ให้เปลี่ยนคำพูดเป็นของตัวเอง หรือไม่ก็เขียนในลักษณะการยกข้อความอ้างอิง และไม่ว่ากรณีไหนก็ตาม ต้องให้เครดิตพร้อมใส่ลิงก์ของทุกบทความที่มีการใช้เนื้อหาเสมอ