φυβλαςのβλογ
บล็อกของ phyblas



~ 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. สามารถเลือกว่าทำอัลฟาแม็ปทั้งหมดได้
ก่อนหน้านี้จะเลือกแค่ว่าจะไม่ทำอัลฟาแม็ปเลยหรือว่าเลือกทำบางส่วน

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

ดังนั้นโดยพื้นฐานแล้วทำอัลฟาแม็ปให้วัสดุทั้งหมดที่ทำได้ไปเลยก็ไม่ใช่ปัญหา จึงเพิ่มตัวเลือกให้ทำทั้งหมดได้

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



ทั้งหมดที่ว่านี่เป็นส่วนหลักๆที่มีการเปลี่ยนแปลงไป ที่จริงมีรายละเอียดปลีกย่อยเล็กๆน้อยๆซึ่งไม่ได้ถึงกับต้องเขียนถึง

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



-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> 3D >> maya
-- คอมพิวเตอร์ >> เขียนโปรแกรม >> python >> mayapython
-- คอมพิวเตอร์ >> 3D >> MMD

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

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
มอดูลต่างๆ
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
ภาษา javascript
ภาษา mongol
ภาษาศาสตร์
maya
ความน่าจะเป็น
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
-- บันทึกในฮ่องกง
-- บันทึกในมาเก๊า
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  ค้นหาบทความ

  บทความแนะนำ

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ

ไทย

日本語

中文